CN111026506A - 采用多种群协同进化遗传算法的云工作流调度优化方法 - Google Patents

采用多种群协同进化遗传算法的云工作流调度优化方法 Download PDF

Info

Publication number
CN111026506A
CN111026506A CN201911259899.8A CN201911259899A CN111026506A CN 111026506 A CN111026506 A CN 111026506A CN 201911259899 A CN201911259899 A CN 201911259899A CN 111026506 A CN111026506 A CN 111026506A
Authority
CN
China
Prior art keywords
task
population
individual
virtual machine
time
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
CN201911259899.8A
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 CN201911259899.8A priority Critical patent/CN111026506A/zh
Publication of CN111026506A publication Critical patent/CN111026506A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Genetics & Genomics (AREA)
  • Artificial Intelligence (AREA)
  • Physiology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种采用多种群协同进化遗传算法的云工作流调度优化方法,包括以下步骤:获取调度优化所需信息;计算任务的排序值rank;基于关键任务优先调度和任务最早完成时间及随机生成方法初始化种群;分若干个子种群进行独立进化,并适时进行子种群间的交流;直到满足终止条件,输出调度优化方案。本发明设计采用了基于拓扑排序的整数编码方法、基于插入模式的串行个体解码方法、向前向后解码与负载均衡的改进策略、多种群协调进化机制,能有效避免各子种群进入局部最优和早熟,提高了寻优能力,改进了算法整体效率。

Description

采用多种群协同进化遗传算法的云工作流调度优化方法
技术领域
本发明涉及计算机技术、信息技术和系统工程领域,具体涉及一种云工作流调度优化方法,更具体的说,尤其涉及一种采用多种群协同进化遗传算法的云工作流调度优化方法。
背景技术
云计算环境下的工作流,简称“云工作流”,是云计算与工作流相关技术的整合,在需要高效计算性能和大规模存储支撑的跨组织业务协作、科学计算等领域具有广泛的应用前景。在云工作流中,任务与任务之间存在着时序约束,执行时通常以虚拟机作为计算资源的最小分配单位负责接收并处理这些任务。云工作流调度是指在满足任务时序和用户需要约束下如何把云工作流中的任务分配到合适的虚拟机上,以及如何安排被分配到虚拟机上的任务的执行顺序,即要解决两个方面的问题:任务分配和任务执行顺序。云工作流调度直接决定了整个云工作流系统的性能,已成为云工作流系统的一个重要研究内容。
当前云工作流调度优化方法可以分为三类:
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等方法;
2)智能计算方法,是指工作流任务分配和执行顺序都通过智能计算方法来搜索生成;如:遗传算法GA、粒子群优化算法PSO、模拟退火算法SA等方法;
3)结合启发式的半智能计算方法,是指工作流任务分配通过智能计算方法来搜索生成而任务执行顺序则根据智能计算方法搜索生成的任务分配方案采用基于优先级的启发式方法生成,或工作流任务执行顺序通过智能计算方法来搜索生成而任务分配则根据智能计算方法搜索生成的任务执行顺序通过基于任务最早完成时间的启发式方法来生成。
然而,现有的这些云工作流调度优化方法有着如下缺点:
1)启发式方法能在较短的时间获得一个调度优化方案,但其质量通常不是很高而且依赖于工作流的类型;
2)智能计算方法的算法效率依赖于编码与解码、进化迭代策略的设计及控制参数的选择等,其中,结合启发式的半智能计算方法搜索的解空间即调度方案是不完整的,因此其理论上存在搜索不到最优调度方案的可能性,同时在算法中需要不断调用启发式方法,其时间效率也不是很高;智能计算方法其理论上可以实现全域搜索,但采用全域搜索会导致搜索效率降低;
因此,随着云工作流复杂性及其应用需求的增加,亟需设计一种更高效方法来解决云工作流调度优化问题。
发明内容
为了克服启发式方法解的质量通常不是很高而且依赖于工作流的类型,结合启发式的半智能计算方法、基于分层编码的智能计算方法编码搜索空间的不完备性,基于全域单种群智能计算方法搜索效率不高等不足,本发明提供了一种采用多种群协同进化遗传算法的云工作流调度优化方法,有效提高了求解的效率与质量。
本发明解决其技术问题所采用的技术方案如下:一种采用多种群协同进化遗传算法的云工作流调度优化方法,包括以下步骤:
步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,...,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;
获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,I;
Figure BDA0002311330590000021
获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
Figure BDA0002311330590000022
获取云计算环境下的虚拟机集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执行时的平均处理时间
Figure BDA0002311330590000031
需要从共享数据库获得输入文件的平均传输时间
Figure BDA0002311330590000032
需要从其它虚拟机获得输入文件的平均传输时间
Figure BDA0002311330590000033
ti执行时的平均处理时间计算如下:
Figure BDA0002311330590000034
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
Figure BDA0002311330590000035
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
Figure BDA0002311330590000036
其中
Figure BDA0002311330590000037
Figure BDA0002311330590000038
和ti间的文件平均传输时间,其计算如下:
Figure BDA0002311330590000039
然后,计算任务i的自下而上排序值
Figure BDA00023113305900000310
其计算过程如下:
对于没有子任务的结束任务i:
Figure BDA00023113305900000311
其它任务的自下而上排序值
Figure BDA00023113305900000312
采用如下递归公式进行计算:
Figure BDA00023113305900000313
接着,计算任务i的自上而下排序值
Figure BDA00023113305900000314
其计算过程如下:
对于没有父任务的开始任务i:
Figure BDA00023113305900000315
其它任务的自上而下排序值
Figure BDA0002311330590000041
采用如下递归公式进行计算:
Figure BDA0002311330590000042
最后,计算任务i的排序值ranki
Figure BDA0002311330590000043
其中,i=1,2…,I;
步骤3:初始化当代种群;
当代种群中包含S个子种群,每个子种群又包含N个个体,N为偶数且N>S,其初始化过程如下:
对每个当代子种群采用基于关键任务优先调度和任务最早完成时间的个体生成方法生成一个个体,然后采用基于随机的个体生成方法生成剩余的N-1个不同的个体;
所述个体采用2I位整数编码,I为任务数量,其方法如下:ch={g1,…,gI,gI+1,…,g2I},基因gi是一个非负整数;其中,{g1,…,gI}是虚拟机分配列表,gi表示给任务i分配的虚拟机编号,即把任务i分配给虚拟机gi,gi∈VMi,i=1,…,I,例如:g1=2表示1号任务是分配给2号虚拟机的;{gI+1,…,g2I}是任务调度顺序列表,是1,…,I的一个排列,且满足任务的时序约束,即任何任务都不能排在其父任务的前面,gI+i表示第i个被调度的任务的编号,即任务gI+i是第i个被调度的,例如gI+1=3,表示第1个调度的任务是3号任务;
所述基于关键任务优先调度和任务最早完成时间的个体生成方法包括如下步骤:
步骤A1:令所有虚拟机的可得时间段列表vatlj={[0,M]},j=1,2,…,J,M为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,2,…,I;令任务集
Figure BDA0002311330590000044
UT=T,令任务集P(ti)=PRi,i=1,2,…,I,令变量k=1;
步骤A2:把
Figure BDA0002311330590000045
的任务移动到RT中,如果RT不为空,则转到步骤A3,否则转到步骤A7;
步骤A3:从RT中的取出一个rank最大的任务,不妨设为ti,gI+k=i;
步骤A4:令ti的可得虚拟机集AVMi=VMi,计算把ti分别分配给AVMi中的每个虚拟机后ti的完成时间:
步骤A4.1:从AVMi中取出一个虚拟机,不妨设为vmj
步骤A4.2:计算ti分配给vmj处理后的执行时间
Figure BDA0002311330590000051
步骤A4.3:在vatlj中从早到晚找出一个空闲时段[νjj],满足υjj≥eti,j和υj-eti,j≥rti
步骤A4.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rti},完成时间fi,j=si,j+eti,j
步骤A4.5:若AVMi不为空,则转到步骤A4.1,否则转到步骤A5;
步骤A5:按虚拟机顺序找出能最早完成ti的虚拟机,不妨设为vmj,gi=j,把ti分配给vmj
步骤A5.1:令ti的开始时间si=si,j,ti的完成时间fi=fi,j
步骤A5.2:更新ti的子任务的就绪时间
Figure BDA0002311330590000052
步骤A5.3:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤A6:令k=k+1,在所有P(ti+)中删除ti
Figure BDA0002311330590000053
转到步骤A2;
步骤A7:输出一个基于关键任务优先调度和任务最早完成时间的个体{g1,…,gI,gI+1,…,g2I},操作结束;
其中:
ωi,j:是vmj处理ti的时间,
Figure BDA0002311330590000054
Figure BDA0002311330590000055
是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,
Figure BDA0002311330590000056
是处理
Figure BDA0002311330590000057
的虚拟机;
τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,
Figure BDA0002311330590000058
所述基于随机的个体生成方法包括如下步骤:
步骤B1:令任务集
Figure BDA0002311330590000061
UT=T,令任务集P(ti)=PRi,i=1,2,…,I,令变量k=1;
步骤B2:把UT中
Figure BDA0002311330590000062
的ti移到RT中,如果RT不为空,则转到步骤B3,否则转到步骤B5;
步骤B3:从RT中随机取出一个任务,不妨设为ti,从VMi中随机选择一个虚拟机,不妨设为vmj,令gi=j,gI+k=i,k=k+1;
步骤B4:在所有
Figure BDA0002311330590000063
中删除ti
Figure BDA0002311330590000064
转到步骤B2;
步骤B5:输出一个随机生成的个体{g1,…,gI,gI+1,…,g2I},操作结束;
步骤4:采用FBI&D和LDI方法改进初始当代种群中的所有个体并计算其适应度值;
所述适应度值为工作流响应时间rs,其计算方法如下:
Figure BDA0002311330590000065
其中:rfi是任务i的响应时间,
Figure BDA0002311330590000066
SFLi是任务i输出给共享数据库的输出文件集,即
Figure BDA0002311330590000067
适应度值越小,个体越优;
所述FBI&D包括如下步骤:
步骤C1:令反向工作流响应时间
Figure BDA0002311330590000068
其中M为一个接近无穷大的数;
步骤C2:采用基于插入模式的串行个体解码方法对个体ch进行解码,获得所有任务的完成时间f1,…,fI及其工作流响应时间rs;如果rs小于
Figure BDA0002311330590000069
则转到步骤C3,否则,转到步骤C6;
步骤C3:把个体ch中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把ch中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成反向个体
Figure BDA00023113305900000610
步骤C4:对
Figure BDA00023113305900000611
采用基于插入模式的串行反向个体解码方法进行解码获得所有任务反向完成时间
Figure BDA00023113305900000612
及其反向工作流响应时间
Figure BDA00023113305900000613
Figure BDA00023113305900000614
小于rs,则转到步骤C5,否则,转到步骤C6;
步骤C5:把反向个体
Figure BDA0002311330590000071
中的任务调度顺序列表根据任务反向完成时间
Figure BDA0002311330590000072
从大到小重新排列,即把
Figure BDA0002311330590000073
中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成个体ch,转到步骤C2;
步骤C6:输出个体ch及其适应度值即工作流响应时间rs,操作结束;
所述LDI方法包括如下步骤:
步骤D1:计算各虚拟机负载
Figure BDA0002311330590000074
步骤D2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤D3,否则转到步骤D4;
步骤D3:令任务集
Figure BDA0002311330590000075
转到步骤D5;
步骤D4:令任务集STj′=Tj′,转到步骤D5;
步骤D5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机的负载是最高的任务i′,转到步骤D6;否则转到步骤D7;
步骤D6:令gi′=j′,形成新的个体
Figure BDA0002311330590000076
采用FBI&D方法对
Figure BDA0002311330590000077
进行解码与改进,如果相对于原个体有改进,则用此改进的个体替换原个体,转到步骤D7;否则转到步骤D5;
步骤D7:LDI操作结束;
步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤9,否则转到步骤6;
所述终止条件为迭代到指定的代数TG或连续迭代GG代最优个体没有改进;
步骤6:判断是否需要进行子种群间交流;如果需要则转到步骤7,否则直接转到步骤8;
所述是否需要进行子种群间交流的判断条件为每迭代EFG代或自上次交流后连续迭代EVG代最优个体没有改进;
步骤7:进行子种群间的交流;
步骤7.1:令精英个体集
Figure BDA0002311330590000078
从每个当代子种群s即CPs中根据适应度值从优到劣选出当前TPS中尚不存在的1个个体,不妨设其为
Figure BDA0002311330590000079
s=1,…,S,并
Figure BDA00023113305900000710
放到TPS中;
步骤7.2:对每个CPs,s=1,…,S,从TPS中找出CPs中不存在的精英个体集CTPSs,用CTPSs中的个体替换CPs中适应度值排名倒数的CTPSs个个体,形成新的CPs
步骤8:每个子种群进行独立进化;
步骤8.1:对每个当代子种群进行N/2次交叉操作形成新子种群;
步骤8.2:对每个新子种群中的所有个体进行变异操作;
步骤8.3:采用FBI&D和LDI方法改进新子种群中的所有个体并计算其适应度值;
步骤8.4:对于每个子种群从当代子种群和新子种群中根据适应度值从小到大选出N个不同的个体作为新的当代子种群,转到步骤5;
步骤9:输出当代种群中的最优个体,其对应的调度方案为优化方案。
进一步的,步骤C2中基于插入模式的串行个体解码方法具体步骤如下:
步骤E1:令所有任务的就绪时间rti=0,i=1,…,I,令变量k=1,令虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,M为一个接近无穷大的数;
步骤E2:选取编号为gI+k的任务,不妨设i=gI+k
步骤E3:基于插入模式把任务i分配给虚拟机j=gi
步骤E3.1:计算任务i的执行时间
Figure BDA0002311330590000081
步骤E3.2:在vatlj中从早到晚找出一个空闲时段[νjj]满足υjj≥eti和υj-eti≥rti
步骤E3.3:计算任务i的开始时间和完成时间:si=max{νj,rti},fi=si+eti;更新任务i的子任务的就绪时间
Figure BDA0002311330590000082
步骤E3.4:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤E4:令k=k+1,如果k≤I则转到步骤E2,否则步骤E5;
步骤E5:获得所有任务的开始时间和完成时间:si、fi,i=1,…,I,计算适应度值即工作流响应时间rs;操作结束。
进一步的,步骤C4中基于插入模式的串行反向个体解码方法具体步骤如下:
步骤F1:令所有任务的反向就绪时间
Figure BDA0002311330590000083
令变量k=1;令所有虚拟机的可得时间段列表vatlj={[0,M]},j=1,…,J,其中M为一个接近无穷大的数;
步骤F2:选取编号为i=gI+k的任务;
步骤F3:基于插入模式把任务i分配给虚拟机gi,不妨设j=gi
步骤F3.1:计算任务i的执行时间
Figure BDA0002311330590000091
步骤F3.2:在vatlj中从早到晚找出一个空闲时段[νjj],满足υjj≥eti
Figure BDA0002311330590000092
步骤F3.3:计算任务i的反向开始时间
Figure BDA0002311330590000093
反向完成时间
Figure BDA0002311330590000094
更新任务i的父任务的就绪时间
Figure BDA0002311330590000095
步骤F3.4:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的
Figure BDA0002311330590000096
Figure BDA0002311330590000097
步骤F4:令k=k+1,如果k≤I,则转到步骤F2,否则步骤F5;
步骤F5:获得所有任务的反向开始时间和反向完成时间:
Figure BDA0002311330590000098
计算反向工作流响应时间
Figure BDA0002311330590000099
操作结束。
进一步的,步骤8.1中交叉操作的具体步骤如下:
步骤G1:基于排序的轮赌法从当代子种群中随机选择两个不同的个体作为父体1和父体2,不妨设为
Figure BDA00023113305900000910
步骤G2:随机产生一个1到2I-1的正整数α,如果1≤α≤I则转到步骤G3,否则转到步骤G4;
步骤G3:生成子体
Figure BDA00023113305900000911
和子体
Figure BDA00023113305900000912
子体chc1的前α个基因来自于父体chp1
Figure BDA00023113305900000913
后2I-α个基因来自于父体chp2
Figure BDA00023113305900000914
子体chc2的前α个基因来自于父体chp2
Figure BDA00023113305900000915
后2I-α个基因来自于父体chp1
Figure BDA00023113305900000916
转到步骤G5;
步骤G4:生成子体
Figure BDA00023113305900000917
和子体
Figure BDA00023113305900000918
子体chc1的前α个基因来自于父体chp1
Figure BDA00023113305900000919
后2I-α个基因来自于父体chp2的调度顺序列表中删除基因值为
Figure BDA00023113305900000920
后的基因列表;子体chc2的前α个基因来自于父体chp2
Figure BDA00023113305900000921
后2I-α个基因来自于父体chp1的调度顺序列表中删除基因值为
Figure BDA00023113305900000922
后的基因列表;转到步骤G5;
步骤G5:输出子体
Figure BDA00023113305900000923
和子体
Figure BDA00023113305900000924
操作结束;
所述步骤G1中基于排序的轮赌法从当代子种群中随机选择两个不同个体作为父体1和父体2的具体步骤如下:
步骤G1.1:对当代子种群中的个体按其适应度值从小到大进行排序,获得个体n的排序值rkn,n=1,…,N,其中排第一的其取1,排第二的其取2,以此类推,排最后一名的其取N;
步骤G1.2:计算个体n被选中的概率
Figure BDA0002311330590000101
R>1为区分度系数;
步骤G1.3:计算累计概率
Figure BDA0002311330590000102
步骤G1.4:产生一个随机数λ1∈[0,1),如果
Figure BDA0002311330590000103
那么选择个体n作为父体1;
步骤G1.5:产生一个随机数λ2∈[0,1),如果
Figure BDA0002311330590000104
并且n′≠n,那么选择个体n′作为父体2,转到步骤G1.6,否则转到步骤G1.5;
步骤G1.6:个体选择操作结束。
进一步的,所述步骤8.2中的变异操作的具体步骤如下:
步骤H1:产生一个随机数λ∈[0,1),如果λ<pm则转到步骤H2;否则转到步骤H6;
步骤H2:随机选择一个基因gi,如果1≤i≤I则转到步骤H3,否则转到步骤H4;
步骤H3:从可以处理ti的虚拟机集VMi中重新随机选择一个虚拟机vmj,gi=j,转到步骤H6;
步骤H4:如果任务gi存在父任务则向前找到第一个父任务gi′,令位置值pos1=i′+1,否则令pos1=I+1;如果任务gi存在子任务则向后找到第一个子任务gi″,令位置值pos2=i″-1,否则令pos2=2I;
步骤H5:在[pos1,pos2]之间重新随机选择一个位置插入gi,转到步骤H6;
步骤H6:操作结束;
其中:pm∈(0,1)为变异率。
本发明的有益效果在于:
(1)相对于启发式方法、结合启发式的半智能计算方法及现有的基于分层编码的智能计算方法,本发明设计采用整数编码方法,任何一个调度方案都可以有一个个体与之对应,因此其搜索空间是完备的,可以实现全域搜索。
(2)相对于一般的基于优先级的编码方式,任务调度顺序采用的基于拓扑排序的整数编码方法考虑了任务之间的时序关系,这样解码就比较简单,能有效提高解码的效率,进而提高算法的整体效率。
(3)相对于传统的非插入模式和并行的解码方法,本发明设计采用的基于插入模式的尽可能早地安排任务执行的串行个体解码方法通常能找到更好的对应调度方案。
(4)相对于普通的单向解码方法,本发明设计采用的向前向后个体解码与改进策略FBI&D和考虑了传输时间的负载均衡策略LDI增强了个体的邻域寻优能力,从而能提高整个算法的寻优能力和搜索效率。
(5)采用由当代子种群和新子种群合并产生当代子种群的策略,可以保证最优个体被遗传到下一代,使算法单调收敛;
(6)相对于传统的随机初始化方法,本发明在初始化种群中播入了一个基于关键任务优先调度和任务最早完成时间的个体,这样可以使算法在一个比较高的起点上开始搜索,从而缩短算法的收敛时间。
(7)相对于传统的单种群进化策略,本发明设计采用的多种群协同进化策略,能有效避免各子种群进入局部最优和早熟,并加速各子种群的收敛,从而能提高整个算法效率。
附图说明
图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)
vm<sub>1</sub> 1000 200 vm<sub>4</sub> 2000 300
vm<sub>2</sub> 1000 200 vm<sub>5</sub> 3000 400
vm<sub>3</sub> 2000 300 vm<sub>6</sub> 3000 400
表1
Figure BDA0002311330590000111
Figure BDA0002311330590000121
表2
针对上述案例,如图1所示,一种采用多种群协同进化遗传算法的云工作流调度优化方法,包括以下实施步骤:
执行步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
获取任务间的时序关系,即任务i的父任务集PRi和子任务集SCi
Figure BDA0002311330590000122
Figure BDA0002311330590000131
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},
Figure BDA0002311330590000132
获取任务的相关参数: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执行时的平均处理时间
Figure BDA0002311330590000141
Figure BDA0002311330590000142
Figure BDA0002311330590000143
同理可得
Figure BDA0002311330590000144
结果如表3所示:
Figure BDA0002311330590000145
表3
计算ti执行时需要从共享数据库获得输入文件的平均传输时间
Figure BDA0002311330590000146
Figure BDA0002311330590000147
Figure BDA0002311330590000148
同理可得
Figure BDA0002311330590000149
结果如表4所示:
Figure BDA00023113305900001410
表4
计算
Figure BDA00023113305900001411
和ti间的文件平均传输时间:
Figure BDA00023113305900001412
Figure BDA00023113305900001413
同理可得其它任务间的文件平均传输时间,结果如表5所示:
Figure BDA00023113305900001414
Figure BDA0002311330590000151
表5
计算ti执行时需要从其它虚拟机获得输入文件的平均传输时间
Figure BDA0002311330590000152
Figure BDA0002311330590000153
Figure BDA0002311330590000154
Figure BDA0002311330590000155
同理可得
Figure BDA0002311330590000156
结果如表6所示:
Figure BDA0002311330590000157
表6
然后,计算任务i的
Figure BDA0002311330590000158
Figure BDA0002311330590000159
Figure BDA00023113305900001510
Figure BDA00023113305900001511
同理可得
Figure BDA00023113305900001512
结果如表7所示;
接着,计算任务i的
Figure BDA00023113305900001513
Figure BDA00023113305900001514
Figure BDA00023113305900001515
Figure BDA00023113305900001516
同理可得
Figure BDA00023113305900001517
结果如表7所示;
最后,计算任务i的排序值ranki
Figure BDA0002311330590000161
rank2=4114.79+0.00=4114.79,
同理可得rank3,…,rank15,结果如表7所示:
任务 rank<sub>i</sub><sup>b</sup> rank<sub>i</sub><sup>t</sup> rank<sub>i</sub> 任务 rank<sub>i</sub><sup>b</sup> rank<sub>i</sub><sup>t</sup> rank<sub>i</sub> 任务 rank<sub>i</sub><sup>b</sup> rank<sub>i</sub><sup>t</sup> rank<sub>i</sub>
t<sub>1</sub> 4095.28 0.00 4095.28 t<sub>6</sub> 3815.62 231.44 4047.06 t<sub>11</sub> 3232.23 830.66 4062.89
t<sub>2</sub> 4114.79 0.00 4114.79 t<sub>7</sub> 3316.20 798.59 4114.79 t<sub>12</sub> 2935.03 1179.76 4114.79
t<sub>3</sub> 4047.06 0.00 4047.06 t<sub>8</sub> 3288.99 825.80 4114.79 t<sub>13</sub> 2305.72 1809.06 4114.79
t<sub>4</sub> 3572.20 184.41 3756.61 t<sub>9</sub> 3241.38 830.66 4072.04 t<sub>14</sub> 2289.55 1825.24 4114.79
t<sub>5</sub> 3910.87 203.92 4114.79 t<sub>10</sub> 3284.12 830.66 4114.79 t<sub>15</sub> 53.30 4061.49 4114.79
表7
执行步骤3:初始化当代种群;
取子种群数量S=3,子种群规模N=6;初始化子种群包括基于关键任务优先调度和任务最早完成时间的个体生成方法生成的1个个体和基于随机的个体生成方法生成的剩余5个不同个体。
基于关键任务优先调度和任务最早完成时间的个体生成方法生成的一个个体的具体实施过程如下:
执行步骤A1:令所有虚拟机的可得时间段列表vatlj={[0,M]},j=1,2,3,4,5,6,M为一个接近无穷大的数;令所有任务的就绪时间rt1=0,rt2=0,…,rt15=0;
Figure BDA0002311330590000162
Figure BDA0002311330590000163
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};
Figure BDA0002311330590000164
k=1;UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
执行步骤A2:把UT中
Figure BDA0002311330590000165
的任务,即t1、t2、t3移到RT中,则RT={t1,t2,t3},UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};由于RT={t1,t2,t3}不为空,则转到步骤A3;
执行步骤A3:在RT={t1,t2,t3}中,rank1=4095.28,rank2=4114.79,rank3=4047.06,则t2为rank最大的任务,从RT中取出t2,则RT={t1,t3},gI+k=g15+1=g16=2;
执行步骤A4:令AVM2=VM2={vm1,vm3,vm4,vm5},计算把t2分别分配给AVM2中的每个虚拟机后t2的完成时间;即:执行步骤A4.1:从AVM2中取出一个虚拟机,其为vm1;执行步骤A4.2:计算t2分配给vm1处理后的执行时间:ω2,1=138000/1000=138,
Figure BDA0002311330590000166
τ2,1=8×(36+4320)/200=174.24,则
Figure BDA0002311330590000167
执行步骤A4.3:在vatl1中从早到晚找出一个空闲时间段[0,M],满足M-0≥et2,1=312.24和M-312.24≥rt2=0;执行步骤A4.4:计算t2分配给vm1处理后的开始时间s2,1=max{v1,rt2}=max{0,0}=0,完成时间f2,1=s2,1+et2,1=0+312.24=312.24;执行步骤A4.5:由于AVM2={vm3,vm4,vm5}不为空,转到步骤A4.1;……;这样不断重复执行步骤A4.1至步骤A4.5,直至AVM2为空,得到s2,3=0,s2,4=0,s2,5=0,f2,3=185.16,f2,4=185.16,f2,5=133.12,转至步骤A5;
执行步骤A5:按虚拟机顺序找出能最早完成t2的虚拟机,其为vm5,g2=5,把t2分配给vm5;即:执行步骤A5.1:令t2的开始时间s2=s2,5=0,完成时间f2=f2,5=133.12;执行步骤A5.2:更新t2的子任务的就绪时间rt5=max{rt5,f2}=max{0,133.12}=133.12,rt10=133.12;执行步骤A5.3:在虚拟机可得时间段列表vatl5中删除[0,M],插入区间长度大于0的[133.12,M],即vatl5={[133.12,M]};
执行步骤A6:k=k+1=1+1=2,在P(t5),P(t10)中删除t2,则P(t5)={t1},P(t10)={t8},转到步骤A2;
执行步骤A2:由于UT中不存在
Figure BDA0002311330590000171
的任务,则RT,UT均不变,由于RT不为空,故转到步骤A3;
执行步骤A3:在RT={t1,t3}中,rank1=4095.28,rank3=4047.06,则t1为rank最大的任务,从RT中取出t1,则RT={t3},gI+k=g15+2=g17=1;
执行步骤A4:令AVM1=VM1={vm1,vm4,vm5,vm6},计算把t1分配给AVM1中的每个虚拟机后t1的完成时间;即:执行步骤A4.1:从AVM1中取出一个虚拟机,其为vm1;执行步骤A4.2:计算t1分配给vm1处理后的执行时间:ω1,1=126,
Figure BDA0002311330590000172
τ1,1=174.24,则et1,1=300.24;执行步骤A4.3:在vatl1中从早到晚找出一个空闲时间段[0,M],满足M-0≥300.24和M-300.24≥0;执行步骤A4.4:计算t1分配给vm1处理后的开始时间s1,1=max{0,0}=0,完成时间f1,1=300.24;执行步骤A4.5:由于AVM1={vm4,vm5,vm6}不为空,转到步骤A4.1;……;这样不断重复执行步骤A4.1至步骤A4.5,直至AVM1为空,得到s1,4=0,s1,5=133.12,s1,6=0,f1,4=179.16,f1,5=262.24,f1,6=129.12,转至步骤A5;
执行步骤A5:按虚拟机顺序找出能最早完成t1的虚拟机,其为vm6,g1=6,把t1分配给vm6;即:执行步骤A5.1:令t1的开始时间s1=s1,6=0,完成时间f1=f1,6=129.12;执行步骤A5.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;执行步骤A5.3:在虚拟机可得时间段列表vatl6中删除[0,M],插入区间长度大于0的[129.12,M],即vatl6={[129.12,M]};
执行步骤A6:k=k+1=2+1=3,在P(t4),P(t5),P(t6),P(t9)中删除t1,则
Figure BDA0002311330590000181
Figure BDA0002311330590000182
P(t6)={t3},P(t9)={t8},转到步骤A2;
执行步骤A2:把UT中
Figure BDA0002311330590000183
的任务,即t4、t5移到RT中,则RT={t3,t4,t5},UT={t6,t7,t8,t9,t10,t11,t12,t13,t14,t15},由于RT不为空,故转到步骤A3;
执行步骤A3:在RT={t3,t4,t5}中,rank3=4047.06,rank4=3756.61,rank5=4114.79,则t5为rank最大的任务,从RT中取出t5,则RT={t3,t4},gI+k=g15+3=g18=5;
执行步骤A4:令AVM5=VM5={vm1,vm2,vm6},计算把t5分配给AVM5中的每个虚拟机后t5的完成时间;即:执行步骤A4.1:从AVM5中取出vm1;执行步骤A4.2:计算t5分配给vm1处理后的执行时间:ω5,1=108,
Figure BDA0002311330590000184
τ5,1=1.44,则et5,1=752.64;执行步骤A4.3:在vatl1中从早到晚找出一个空闲时间段[0,M],满足M-0≥752.64和M-752.64≥0;执行步骤A4.4:计算t5分配给vm1处理后的开始时间s5,1=max{0,133.12}=133.12,完成时间f5,1=885.76;执行步骤A4.5:由于AVM5={vm2,vm6}不为空,转到步骤A4.1;……;这样不断重复执行步骤A4.1至步骤A4.5,直至AVM5为空,得到s5,2=133.12,s5,6=133.12,f5,2=885.76,f5,6=333.04,转至步骤A5;
执行步骤A5:按虚拟机顺序找出能最早完成t5的虚拟机,其为vm6,g5=6,把t5分配给vm6;即执行步骤A5.1:令t5的开始时间s5=s5,6=133.12,完成时间f5=f5,6=333.04;执行步骤A5.2:更新t5的子任务的就绪时间rt7=max{rt7,f5}=max{0,333.04}=333.04;执行步骤A5.3:在虚拟机可得时间段列表vatl6中删除[129.12,M],插入区间长度大于0的[129.12,133.12]和[333.04,M],即vatl6={[129.12,133.12],[333.04,M]};
执行步骤A6:k=k+1=3+1=4,在P(t7)中删除t5,则P(t7)={t4,t6},转到步骤A2;
……
这样不断重复执行步骤A2至步骤A6,直至
Figure BDA0002311330590000191
转到步骤A7;
执行步骤A7:输出一个基于关键任务优先调度和任务最早完成时间的个体ch1,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15},操作结束;
基于随机的个体生成方法生成1个个体的具体实施过程如下:
执行步骤B1:
Figure BDA0002311330590000192
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};
Figure BDA0002311330590000193
UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};k=1;
执行步骤B2:把UT中
Figure BDA0002311330590000194
的任务,即t1、t2、t3移到RT中,则RT={t1,t2,t3},UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};由于RT={t1,t2,t3}不为空,则转到步骤B3;
执行步骤B3:从RT={t1,t2,t3}中随机取出一个任务,其为t2,则RT={t1,t3};从VM2={vm1,vm3,vm4,vm5}中随机选择一个虚拟机,其为vm3,令g2=3,gI+k=g15+1=g16=2,k=k+1=1+1=2;
执行步骤B4:在P(t5),P(t10)中删除t2,则P(t5)={t1},P(t10)={t8},转到步骤B2;
执行步骤B2:由于UT中不存在
Figure BDA0002311330590000195
的任务,则RT,UT均不变;由于RT={t1,t3}不为空,则转到步骤B3;
执行步骤B3:从RT={t1,t3}中随机取出一个任务,其为t1,则RT={t3};从VM1={vm1,vm4,vm5,vm6}中随机选择一个虚拟机,其为vm5,令g1=5,gI+k=g15+2=g17=1,k=k+1=2+1=3;
执行步骤B4:在P(t4),P(t5),P(t6),P(t9)中删除t1,则
Figure BDA0002311330590000196
P(t6)={t3},P(t9)={t8},转到步骤B2;
执行步骤B2:把
Figure BDA0002311330590000201
的任务,即t4、t5移到RT中,则RT={t3,t4,t5},UT={t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};由于RT={t3,t4,t5}不为空,则转到步骤B3;
执行步骤B3:从RT={t3,t4,t5}中随机取出一个任务,其为t3,则RT={t4,t5},从VM3={vm1,vm2,vm3,vm5}中随机选择一个虚拟机,其为vm5,令g3=5,gI+k=g15+3=g18=3,k=k+1=3+1=4;
执行步骤B4:在P(t6),P(t11)中删除t3,则
Figure BDA0002311330590000202
P(t11)={t8},转到步骤B2;
……
这样不断重复执行步骤B2至步骤B4,直至
Figure BDA0002311330590000203
转到步骤B5;
执行步骤5:输出1个随机生成的个体ch1,2={5,3,5,5,6,3,4,6,5,4,4,5,6,2,1;2,1,3,5,6,4,7,8,9,10,11,12,13,14,15},操作结束;
基于随机的个体生成方法生成当代子种群1中的其它不同个体如下:
ch1,3={5,1,1,1,1,1,2,4,1,2,6,3,6,5,6;1,2,5,4,3,6,7,8,9,10,11,12,13,14,15};
ch1,4={4,4,3,5,6,1,5,4,5,2,3,5,6,4,6;3,2,1,4,6,5,7,8,9,10,11,12,13,14,15};
ch1,5={5,4,1,6,6,4,5,6,5,4,6,5,1,4,6;3,2,1,5,6,4,7,8,9,10,11,12,13,14,15};
ch1,6={4,1,3,4,1,5,2,5,1,2,3,5,6,4,6;1,2,4,3,6,5,7,8,10,11,9,12,13,14,15};
这样最终生成的初始当代子种群1为CP1={ch1,1,ch1,2,ch1,3,ch1,4,ch1,5,ch1,6};
同理,生成其它子种群的个体分别如下:
ch2,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,2={4,5,2,6,6,4,4,5,3,4,6,3,6,2,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,3={4,1,3,6,6,4,2,5,1,4,3,3,1,4,6;3,2,1,6,5,4,7,8,9,11,10,12,13,14,15};
ch2,4={5,5,5,6,6,3,2,5,4,4,2,5,1,4,1;2,1,4,5,3,6,7,8,10,9,11,12,13,14,15};
ch2,5={4,3,3,4,6,4,2,5,2,2,2,3,6,5,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,6={4,5,5,1,1,5,5,4,1,4,6,5,1,4,1;3,1,2,6,5,4,7,8,11,10,9,12,13,14,15};
CP2={ch2,1,ch2,2,ch2,3,ch2,4,ch2,5,ch2,6};
ch3,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,2={4,5,1,6,2,5,4,6,4,4,4,5,6,5,1;3,2,1,4,5,6,7,8,10,11,9,12,13,14,15};
ch3,3={1,1,2,5,2,5,2,6,4,4,4,3,6,4,1;3,2,1,6,5,4,7,8,10,9,11,12,13,14,15};
ch3,4={4,4,2,3,6,4,2,5,2,4,6,5,6,2,6;1,3,4,2,6,5,7,8,9,11,10,12,13,14,15};
ch3,5={6,3,3,1,2,4,5,4,1,2,2,3,6,2,6;1,3,2,4,5,6,7,8,11,9,10,12,13,14,15};
ch3,6={5,5,5,5,1,3,4,6,5,2,2,3,1,6,6;2,3,1,4,6,5,7,8,10,9,11,12,13,14,15};
CP3={ch3,1,ch3,2,ch3,3,ch3,4,ch3,5,ch3,6};
最终生成的初始当代种群为CP={CP1,CP2,CP3}。
执行步骤4:采用FBI&D和LDI方法改进初始当代种群中的所有个体并计算其适应度值;
对当代种群中的所有个体采用FBI&D方法改进,例如对当代子种群1中的ch1,4={4,4,3,5,6,1,5,4,5,2,3,5,6,4,6;3,2,1,4,6,5,7,8,9,10,11,12,13,14,15}采用FBI&D方法改进的过程如下:
执行步骤C1:令反向工作流响应时间
Figure BDA0002311330590000211
其中M为一个接近无穷大的数;
执行步骤C2:采用基于插入模式的串行个体解码方法对个体ch1,4进行解码,获得所有任务的完成时间:f1=364.32,f2=185.16,f3=182.16,f4=610.24,f5=829.84,f6=1103.76,f7=1118.24,f8=1124.12,f9=1373.96,f10=1571.48,f11=1178.76,f12=2112.44,f13=2121.08,f14=4056.08,f15=4100.28,及其适应度值即工作流响应时间rs1,4=4108.68;由于rs1,4=4108.68小于
Figure BDA0002311330590000212
则转到步骤C3;
执行步骤C3:把个体ch1,4中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把个体中的基因gI+i设置为倒数第i个完成的任务,i=1,…,15,形成反向个体
Figure BDA0002311330590000213
执行步骤C4:对
Figure BDA0002311330590000214
采用基于插入模式的串行反向个体解码方法进行解码获得所有任务反向完成时间:
Figure BDA0002311330590000215
Figure BDA0002311330590000216
Figure BDA0002311330590000221
及其反向工作流响应时间
Figure BDA0002311330590000222
由于
Figure BDA0002311330590000223
小于rs1,4=4108.68,则转到步骤C5;
执行步骤C5:把反向个体
Figure BDA0002311330590000224
中的任务调度顺序列表根据任务反向完成时间
Figure BDA0002311330590000225
从大到小重新排列,即把
Figure BDA0002311330590000226
中的基因gI+i设置为倒数第i个完成的任务,i=1,…,15,形成个体ch1,4={4,4,3,5,6,1,5,4,5,2,3,5,6,4,6;3,1,6,2,5,4,7,8,10,9,11,12,13,14,15},转到步骤C2;
执行步骤C2:采用基于插入模式的串行个体解码方法对个体ch1,4进行解码,获得所有任务的完成时间:f1=179.16,f2=364.32,f3=182.16,f4=425.08,f5=829.84,f6=921.60,f7=936.08,f8=941.96,f9=1191.80,f10=1389.32,f11=996.60,f12=1930.28,f13=1938.92,f14=3873.92,f15=3918.12,及其适应度值即工作流响应时间rs1,4=3926.52;由于rs1,4等于
Figure BDA0002311330590000227
则转到步骤C6;
执行步骤C6:输出个体ch1,4={4,4,3,5,6,1,5,4,5,2,3,5,6,4,6;3,1,6,2,5,4,7,8,10,9,11,12,13,14,15}及其适应度值即工作流响应时间rs1,4=3926.52,操作结束;
其中,以上述个体ch1,4={4,4,3,5,6,1,5,4,5,2,3,5,6,4,6;3,2,1,4,6,5,7,8,9,10,11,12,13,14,15}解码为例,基于插入模式的串行个体解码方法的具体实施过程如下:
执行步骤E1:令所有任务的就绪时间rt1=0,rt2=0,…,rt15=0;,k=1,令所有虚拟机的可得时间段列表vatl1={[0,M]},vatl2={[0,M]},…,vatl6={[0,M]},M为一个接近无穷大的数;
执行步骤E2:选取编号为g15+1=g16=3的任务;
执行步骤E3:基于插入模式把任务3分配给虚拟机g3=3;即执行步骤E3.1:计算任务3的执行时间
Figure BDA0002311330590000228
执行步骤E3.2:在vatl3中从早到晚找出一个空闲时间段[0,M],满足M-0≥et3=182.16和M-182.16≥rt3=0;执行步骤E3.3:计算任务t3的开始时间和完成时间:s3=max{v3,rt3}=max{0,0}=0,f3=s3+et3=0+182.16=182.16,更新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]};
执行步骤E4:k=k+1=1+1=2,由于k=2≤I=15,则转到步骤E2;
执行步骤E2:选取编号为g15+2=g17=2的任务;
执行步骤E3:基于插入模式把任务2分配给虚拟机g2=4;即执行步骤E3.1:计算任务i的执行时间
Figure BDA0002311330590000231
执行步骤E3.2:在vatl4中从早到晚找出一个空闲时间段[0,M],满足M-0≥185.16和M-185.16≥0;执行步骤E3.3:计算任务t2的开始时间和完成时间s2=max{v4,rt2}=max{0,0}=0,f2=s2+et2=0+185.16=185.16,更新t2的子任务的就绪时间:rt5=max{rt5,f2}=max{0,185.16}=185.16,rt10=185.16;执行步骤E3.4:在虚拟机可得时间段列表vatl4中删除[0,M],插入区间长度大于0的[185.16,M],即vatl4={[185.16,M]};
执行步骤E4:k=k+1=2+1=3,由于k=3≤I=15,则转到步骤E2;
执行步骤E2:选取编号为g15+3=g18=1的任务;
执行步骤E3:基于插入模式把任务1分配给虚拟机g1=4;即执行步骤E3.1:计算任务i的执行时间
Figure BDA0002311330590000232
执行步骤E3.2:在vatl4中从早到晚找出一个空闲时间段[185.16,M],满足M-185.16≥179.16和M-179.16≥0;执行步骤E3.3:计算任务t1的开始时间和完成时间s1=max{185.16,0}=185.16,f1=185.16+179.16=364.32,更新t1的子任务的就绪时间:rt4=max{rt4,f1}=max{0,364.32}=364.32,rt5=max{185.16,364.32}=364.32,rt6=max{182.16,364.32}=364.32,rt9=364.32;执行步骤E3.4:在虚拟机可得时间段列表vatl4中删除[185.16,M],插入区间长度大于0的[364.32,M],即vatl4={[364.32,M]};
执行步骤E4:k=3+1=4,由于k=4≤I=15,则转到步骤E2;
执行步骤E2:选取编号为g15+4=g19=4的任务;
执行步骤E3:基于插入模式把任务4分配给虚拟机g4=5;即执行步骤E3.1:计算任务i的执行时间
Figure BDA0002311330590000233
执行步骤E3.2:在vatl5中从早到晚找出一个空闲时间段[0,M],满足M-0≥245.92和M-245.92≥364.32;执行步骤E3.3:计算任务t4的开始时间和完成时间s4=max{0,364.32}=364.32,f4=364.32+245.92=610.24,更新t4的子任务的就绪时间:rt7=max{0,610.24}=610.24;执行步骤E3.4:在虚拟机可得时间段列表vatl5中删除[0,M],插入区间长度大于0的[0,364.32]和[610.24,M],即vatl5={[0,364.32],[610.24,M]};
执行步骤E4:k=4+1=5,由于k=5≤I=15,则转到步骤E2;
……
这样不断重复执行步骤E2至步骤E4,直至k=16>I=15,转到步骤E5;
执行步骤E5:获得所有任务的开始时间和完成时间:s1=185.16,s2=0.00,s3=0.00,s4=364.32,s5=364.32,s6=364.32,s7=1103.76,s8=1118.24,s9=1124.12,s10=1124.12,s11=1124.12,s12=1571.48,s13=2112.44,s14=2121.08,s15=4056.08;f1=364.32,f2=185.16,f3=182.16,f4=610.24,f5=829.84,f6=1103.76,f7=1118.24,f8=1124.12,f9=1373.96,f10=1571.48,f11=1178.76,f12=2112.44,f13=2121.08,f14=4056.08,f15=4100.28;计算适应度值即工作流响应时间:由于
Figure BDA0002311330590000241
而SFL15={f15-1},故
Figure BDA0002311330590000242
操作结束;
其中,以上述个体
Figure BDA0002311330590000243
解码为例,基于插入模式的串行反向个体解码方法的具体实施过程如下:
执行步骤F1:由于
Figure BDA0002311330590000244
而SFL15={f15-1},故令任务的反向就绪时间:
Figure BDA0002311330590000245
k=1;令虚拟机可得时间段列表:vatl1={[0,M]},vatl2={[0,M]},……,vatl6={[0,M]},其中M为一个接近无穷大的数;
执行步骤F2:选取编号为i=g15+1=g16的任务,其为t15
执行步骤F3:基于插入模式把任务15分配给虚拟机j=g15=6:即执行步骤F3.1:计算任务15的执行时间
Figure BDA0002311330590000246
执行步骤F3.2:在vatl6中从早到晚找出一个空闲时段[0,M],满足M-0≥et15=44.20和
Figure BDA0002311330590000247
执行步骤F3.3:计算任务15的反向开始时间
Figure BDA0002311330590000251
反向完成时间
Figure BDA0002311330590000252
更新任务15的父任务的就绪时间
Figure BDA0002311330590000253
执行步骤F3.4:在虚拟机可得时间段列表vatl6中删除[0,M],插入区间长度大于0的[0,8.40]和[52.60,M];
执行步骤F4:k=1+1=2,由于k=2≤I=15,则转到步骤F2;
执行步骤F2:选取编号为i=g17的任务,其为t14
执行步骤F3:基于插入模式把任务14分配给虚拟机j=g14=4:即执行步骤F3.1:计算任务14的执行时间
Figure BDA0002311330590000254
执行步骤F3.2:在vatl4中从早到晚找出一个空闲时段[0,M],满足M-0≥1935.00和
Figure BDA0002311330590000255
执行步骤F3.3:计算任务14的开始时间
Figure BDA0002311330590000256
完成时间
Figure BDA0002311330590000257
更新任务14的父任务的就绪时间
Figure BDA0002311330590000258
执行步骤F3.4:在虚拟机可得时间段列表vatl4中删除[0,M],插入区间长度大于0的[0,52.60]和[1987.60,M];
执行步骤F4:k=2+1=3,由于k=3≤I=15,则转到步骤F2;
……
这样不断重复执行步骤F2至步骤F4,直到k=16>I=15,转到步骤F5;
执行步骤F5:获得所有任务的反向开始时间和反向完成时间:
Figure BDA0002311330590000259
Figure BDA00023113305900002510
Figure BDA00023113305900002511
Figure BDA00023113305900002512
Figure BDA00023113305900002513
Figure BDA00023113305900002514
计算反向工作流响应时间
Figure BDA00023113305900002515
操作结束;
当代子种群1中的其它个体经FBI&D方法改进后变为:
ch1,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,2={5,3,5,5,6,3,4,6,5,4,4,5,6,2,1;2,1,3,5,6,4,7,8,9,10,11,12,13,14,15};
ch1,3={5,1,1,1,1,1,2,4,1,2,6,3,6,5,6;1,2,5,4,3,6,7,8,9,10,11,12,13,14,15};
ch1,5={5,4,1,6,6,4,5,6,5,4,6,5,1,4,6;3,2,1,5,6,4,7,8,9,10,11,12,13,14,15};
ch1,6={4,1,3,4,1,5,2,5,1,2,3,5,6,4,6;1,2,4,3,6,5,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1,1=1174.64,rs1,2=4735.28,rs1,3=4721.76,rs1,5=4599.64,rs1,6=4053.36;
同理,当代子种群2中的所有个体经FBI&D方法改进后变为:
ch2,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,2={4,5,2,6,6,4,4,5,3,4,6,3,6,2,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,3={4,1,3,6,6,4,2,5,1,4,3,3,1,4,6;3,2,1,6,5,4,7,8,9,11,10,12,13,14,15};
ch2,4={5,5,5,6,6,3,2,5,4,4,2,5,1,4,1;2,1,4,5,3,6,7,8,10,9,11,12,13,14,15};
ch2,5={4,3,3,4,6,4,2,5,2,2,2,3,6,5,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,6={4,5,5,1,1,5,5,4,1,4,6,5,1,4,1;1,2,5,4,3,6,7,8,9,10,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs2,1=1174.64,rs2,2=4628.00,rs2,3=5099.12,rs2,4=5182.16,rs2,5=4603.20,rs2,6=5489.28;
当代子种群3中的所有个体经FBI&D方法改进后变为:
ch3,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,2={4,5,1,6,2,5,4,6,4,4,4,5,6,5,1;3,2,1,4,5,6,7,8,10,11,9,12,13,14,15};
ch3,3={1,1,2,5,2,5,2,6,4,4,4,3,6,4,1;3,2,1,6,5,4,7,8,10,9,11,12,13,14,15};
ch3,4={4,4,2,3,6,4,2,5,2,4,6,5,6,2,6;1,3,4,2,6,5,7,8,9,11,10,12,13,14,15};
ch3,5={6,3,3,1,2,4,5,4,1,2,2,3,6,2,6;2,1,5,3,6,4,7,8,11,10,9,12,13,14,15};
ch3,6={5,5,5,5,1,3,4,6,5,2,2,3,1,6,6;2,1,5,3,6,4,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间分别为:rs3,1=1174.64,rs3,2=3828.44,rs3,3=5437.16,rs3,4=4963.32,rs3,5=5763.56,rs3,6=5670.28;
对当代种群中的所有个体采用LDI方法改进,例如对当代子种群1中的ch1,6={4,1,3,4,1,5,2,5,1,2,3,5,6,4,6;1,2,4,3,6,5,7,8,10,11,9,12,13,14,15}采用LDI方法改进的具体实施过程如下:
执行步骤D1:计算各虚拟机的负载:
Figure BDA0002311330590000271
同理,ld2=122.4,ld3=120,ld4=129,ld5=45.6,ld6=8.6;
执行步骤D2:找出负载最小的虚拟机,其为vm6,由于ld6=8.6>0,故转到步骤D3;
执行步骤D3:
Figure BDA0002311330590000272
转到步骤D5;
执行步骤D5:由于ST6={t14}不为空,则从ST6中按顺序取出一个其所在虚拟机负载是最高的任务,其为t14,转到步骤D6;
执行步骤D6:g14=6,形成新的个体
Figure BDA0002311330590000273
采用FBI&D方法对
Figure BDA0002311330590000274
进行解码改进,新个体变为
Figure BDA0002311330590000275
其适应度值即工作流响应时间为
Figure BDA0002311330590000276
由于
Figure BDA0002311330590000277
即改进的个体
Figure BDA0002311330590000278
相较于原个体ch1,6有改进,因此用改进的个体
Figure BDA0002311330590000279
替换原个体ch1,6,则
Figure BDA00023113305900002710
Figure BDA00023113305900002711
转到步骤D7;
执行步骤D7:LDI操作结束;
当代子种群1中的其它个体经LDI方法改进后变为:
ch1,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,2={5,3,5,5,6,3,4,6,5,4,4,5,6,2,1;2,1,3,5,6,4,7,8,9,10,11,12,13,14,15};
ch1,3={5,1,1,1,1,1,2,4,4,2,6,3,6,5,6;1,2,5,4,3,6,7,8,9,10,11,12,13,14,15};
ch1,4={4,4,3,5,6,1,5,4,5,2,3,5,6,6,6;3,1,6,2,5,4,7,8,10,9,11,12,13,14,15};
ch1,5={5,4,2,6,6,4,5,6,5,4,6,5,1,4,6;3,2,1,5,6,4,7,8,9,10,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1,1=1174.64,rs1,2=4735.28,rs1,3=4625.76,rs1,4=1959.92,rs1,5=4599.64;
同理,当代子种群2中的所有个体经LDI方法改进后变为:
ch2,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,2={4,5,2,1,6,4,4,5,3,4,6,3,6,2,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,3={4,1,3,6,6,4,2,5,5,4,3,3,1,4,6;3,2,1,6,5,4,7,8,9,11,10,12,13,14,15};
ch2,4={5,5,5,6,6,3,2,5,4,4,2,5,1,4,1;2,1,4,5,3,6,7,8,10,9,11,12,13,14,15};
ch2,5={4,3,3,4,6,4,2,5,1,2,2,3,6,5,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,6={4,5,5,1,2,5,5,4,1,4,6,5,1,4,1;1,2,5,4,3,6,7,8,9,10,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs2,1=1174.64,rs2,2=4468.32,rs2,3=4958.40,rs2,4=5182.16,rs2,5=4171.44,rs2,6=5069.04;
当代子种群3中的所有个体经LDI方法改进后变为:
ch3,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,2={4,5,1,6,2,5,4,6,3,4,4,5,6,5,1;3,2,1,4,5,6,7,8,10,11,9,12,13,14,15};
ch3,3={1,1,2,5,2,5,2,6,4,4,6,3,6,4,1;3,2,1,6,5,4,7,8,10,9,11,12,13,14,15};
ch3,4={4,4,1,3,6,4,2,5,2,4,6,5,6,2,6;1,3,4,2,6,5,7,8,9,11,10,12,13,14,15};
ch3,5={6,3,3,5,2,4,5,4,1,2,2,3,6,2,6;2,1,5,3,6,4,7,8,11,10,9,12,13,14,15};
ch3,6={5,5,5,4,1,3,4,6,5,2,2,3,1,6,6;2,1,5,3,6,4,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间分别为:rs3,1=1174.64,rs3,2=3770.80,rs3,3=5075.32,rs3,4=4963.32,rs3,5=5748.20,rs3,6=5660.04;
执行步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤9,否则转到步骤6;
终止条件设为迭代TG=50代;
在上述过程所生成的种群是初始化后改进的种群,当前只迭代进化了一代,不满足终止条件,因此转到步骤6。
执行步骤6:判断是否需要进行子种群间交流;如果需要则转到步骤7,否则直接转到步骤8;
子种群间需要进行交流的条件设为EFG=10,即每迭代10代进行一次子种群间的交流;当前种群只进化了一代,不满足子种群间交流的条件,因此转到步骤8。
执行步骤8:每个子种群进行独立进化;
执行步骤8.1:对每个当代子种群进行3次交叉操作形成新子种群;
对当代子种群1即CP1进行第1次交叉操作的过程如下:
执行步骤G1:基于排序的轮赌法从当代子种群1中随机选择两个不同的个体作为父体,即:执行步骤G1.1:首先对当代子种群1中的个体适应度值从小到大进行排序,获得每个个体对应的排序值:rk1=1,rk2=6,rk3=5,rk4=2,rk5=4,rk6=3;执行步骤G1.2:令R=1+1/N=1.167,计算第1个个体ch1,1被选中的概率
Figure BDA0002311330590000297
同理A2=0.109,A3=0.128,A4=0.203,A5=0.149,A6=0.174;执行步骤G1.3:计算累计概率
Figure BDA0002311330590000291
Figure BDA0002311330590000292
Figure BDA0002311330590000293
执行步骤G1.4:随机产生一个[0,1)的随机数λ1,其为0.873,由于
Figure BDA0002311330590000294
因此选择ch1,6作为第一个父体;执行步骤G1.5:随机产生一个[0,1)的随机数λ2,其为0.787,由于
Figure BDA0002311330590000295
且6≠5,因此选择ch1,5作为第二个父体,执行步骤G1.6:获得两个不同的个体ch1,6和ch1,5作为父体,个体选择操作结束;则chp1=ch1,6={4,1,3,4,1,5,2,5,1,2,3,5,6,6,6;1,2,4,3,6,5,7,8,10,11,9,12,13,14,15},chp2=ch1,5={5,4,2,6,6,4,5,6,5,4,6,5,1,4,6;3,2,1,5,6,4,7,8,9,10,11,12,13,14,15};
执行步骤G2:随机产生一个1到29之间的正整数α=18,由于α=18>15,则转到步骤G4;
执行步骤G4:如表8所示,子体chc1的前18个基因来自于父体chp1,后12个基因来自于父体chp2的调度顺序列表中删除基因值为
Figure BDA0002311330590000296
即1、2、4后的基因列表;子体chc2的前18个基因来自于父体chp2,后12个基因来自于父体chp1的调度顺序列表中删除基因值为
Figure BDA0002311330590000301
即3、2、1后的基因列表;转到步骤G5;
执行步骤G5:输出子体chc1={4,1,3,4,1,5,2,5,1,2,3,5,6,6,6;1,2,4,3,5,6,7,8,9,10,11,12,13,14,15}和子体chc2={5,4,2,6,6,4,5,6,5,4,6,5,1,4,6;3,2,1,4,6,5,7,8,10,11,9,12,13,14,15},操作结束;
这样获得新个体ch′1,1=chc1,ch′1,2=chc2
g<sub>i</sub> 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>1</sub><sub>0</sub> g<sub>1</sub><sub>1</sub> g<sub>1</sub><sub>2</sub> g<sub>1</sub><sub>3</sub> g<sub>1</sub><sub>4</sub> g<sub>1</sub><sub>5</sub> g<sub>1</sub><sub>6</sub> g<sub>1</sub><sub>7</sub> g<sub>1</sub><sub>8</sub> g<sub>1</sub><sub>9</sub> g<sub>2</sub><sub>0</sub> g<sub>2</sub><sub>1</sub> g<sub>2</sub><sub>2</sub> g<sub>2</sub><sub>3</sub> g<sub>24</sub> g<sub>25</sub> g<sub>26</sub> g<sub>27</sub> g<sub>28</sub> g<sub>29</sub> g<sub>30</sub>
ch<sup>p1</sup> 4 1 3 4 1 5 2 5 1 2 3 5 6 6 6 1 2 4 3 6 5 7 8 10 11 9 12 13 14 15
ch<sup>p2</sup> 5 4 2 6 6 4 5 6 5 4 6 5 1 4 6 3 2 1 5 6 4 7 8 9 10 11 12 13 14 15
ch<sup>c1</sup> 4 1 3 4 1 5 2 5 1 2 3 5 6 6 6 1 2 4 3 5 6 7 8 9 10 11 12 13 14 15
ch<sup>c2</sup> 5 4 2 6 6 4 5 6 5 4 6 5 1 4 6 3 2 1 4 6 5 7 8 10 11 9 12 13 14 15
表8
对CP1进行第2次交叉操作的过程如下:
执行步骤G1:基于排序的轮赌法从当代子种群1中随机选择两个不同的个体作为父体,其为:chp1=ch1,2={5,3,5,5,6,3,4,6,5,4,4,5,6,2,1;2,1,3,5,6,4,7,8,9,10,11,12,13,14,15};chp2=ch1,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
执行步骤G2:随机产生一个1到29之间的正整数α=2,由于1≤α=2≤15,则转到步骤G3;
执行步骤G3:如表9所示,子体chc1的前2个基因来自于父体chp1,后28个基因来自于父体chp2;子体chc2的前2个基因来自于父体chp2,后28个基因来自于父体chp1;转到步骤G5;
执行步骤G5:输出子体chc1={5,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15}和子体chc2={6,5,5,5,6,3,4,6,5,4,4,5,6,2,1;2,1,3,5,6,4,7,8,9,10,11,12,13,14,15},操作结束;
这样获得新个体ch′1,3=chc1,ch′1,4=chc2
Figure BDA0002311330590000302
Figure BDA0002311330590000311
表9
同样地,经交叉操作生成新子种群1中的其它个体如下:
ch′1,5={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,3,1,6,5,4,7,8,10,9,11,12,13,14,15};
ch′1,6={6,4,3,5,6,1,5,4,5,2,3,5,6,4,6;3,2,1,5,6,4,7,8,10,9,11,12,13,14,15};
这样生成的新子种群1为NP1={ch′1,1,ch′1,2,ch′1,3,ch′1,4,ch′1,5,ch′1,6};
同理,生成其它新子种群的个体分别如下:
ch′2,1={4,5,5,1,2,5,2,5,4,4,2,5,1,4,1;2,1,4,5,3,6,7,8,10,9,11,12,13,14,15};
ch′2,2={5,5,5,6,6,3,5,4,1,4,6,5,1,4,1;1,2,5,4,3,6,7,8,9,10,11,12,13,14,15};
ch′2,3={4,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch′2,4={6,5,3,4,6,4,2,5,1,2,2,3,6,5,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch′2,5={4,1,3,6,6,4,4,5,3,4,6,3,6,2,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch′2,6={4,5,1,6,6,4,2,5,5,4,3,3,1,4,6;3,2,1,6,5,4,7,8,9,11,10,12,13,14,15};
NP2={ch′2,1,ch′2,2,ch′2,3,ch′2,4,ch′2,5,ch′2,6};
ch′3,1={1,1,2,5,2,5,2,6,4,4,6,3,6,6,6;2,1,5,3,6,4,7,8,10,11,9,12,13,14,15};
ch′3,2={5,5,5,4,1,3,4,6,5,2,2,3,1,4,1;3,2,1,6,5,4,7,8,10,9,11,12,13,14,15};
ch′3,3={6,3,3,5,2,4,5,4,1,2,2,3,6,2,6;2,1,3,4,6,5,7,8,9,11,10,12,13,14,15};
ch′3,4={4,4,1,3,6,4,2,5,2,4,6,5,6,2,6;1,2,5,3,6,4,7,8,11,10,9,12,13,14,15};
ch′3,5={1,1,2,5,2,5,2,6,4,4,6,3,6,4,1;3,2,1,5,6,4,7,8,10,9,11,12,13,14,15};
ch′3,6={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,3,6,5,4,7,8,10,9,11,12,13,14,15};
NP3={ch′3,1,ch′3,2,ch′3,3,ch′3,4,ch′3,5,ch′3,6};
生成的新种群为NP={NP1,NP2,NP3}。
执行步骤8.2:对每个新子种群中的所有个体进行变异操作;
取变异率pm=0.2;
对新子种群1进行变异操作的过程如下:
对于ch′1,1={4,1,3,4,1,5,2,5,1,2,3,5,6,6,6;1,2,4,3,5,6,7,8,9,10,11,12,13,14,15};
执行步骤H1:产生一个[0,1)的随机数λ,其为0.11,由于λ=0.11<pm=0.2,则转到步骤H2;
执行步骤H2:随机选择一个基因,其为g9,即i=9,由于1≤i=9≤15,则转到步骤H3;
执行步骤H3:从可以处理t9的虚拟机集VM9={vm1,vm2,vm3,vm4,vm5}中重新随机选择一个虚拟机,其为vm3,g9=3,转到步骤H6;
执行步骤H6:操作结束;
这样,变异后的个体变为:
ch′1,1={4,1,3,4,1,5,2,5,3,2,3,5,6,6,6;1,2,4,3,5,6,7,8,9,10,11,12,13,14,15};
对于ch′1,2={5,4,2,6,6,4,5,6,5,4,6,5,1,4,6;3,2,1,4,6,5,7,8,10,11,9,12,13,14,15};
执行步骤H1:产生一个[0,1)的随机数λ,其为0.17,由于λ=0.17<pm=0.2,则转到步骤H2;
执行步骤H2:随机选择一个基因,其为g20,即i=20,由于i=20>15,则转到步骤H4;
执行步骤H4:任务g20=6存在父任务,则向前找到第一个父任务g18=1,即i′=18,pos1=i′+1=18+1=19;任务g20=6存在子任务,则向后找到第一个子任务g22=7,即i′=22,pos2=i″-1=22-1=21;
执行步骤H5:在[19,21]之间随机选择一个位置插入g20=6,其为g19,转到步骤H6;
执行步骤H6:操作结束;
这样,变异后的个体变为:
ch′1,2={5,4,2,6,6,4,5,6,5,4,6,5,1,4,6;3,2,1,6,4,5,7,8,10,11,9,12,13,14,15};
同理,新子种群1中的其它个体经变异操作后变为:
ch′1,3={5,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch′1,4={6,5,5,5,6,3,4,6,5,4,4,5,1,2,1;2,1,3,5,6,4,7,8,9,10,11,12,13,14,15};
ch′1,5={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,3,1,5,6,4,7,8,10,9,11,12,13,14,15};
ch′1,6={6,4,5,5,6,1,5,4,5,2,3,5,6,4,6;3,2,1,5,6,4,7,8,10,9,11,12,13,14,15};
经变异操作后新子种群2中的所有个体变为:
ch′2,1={4,5,5,1,2,5,2,5,4,4,2,5,1,4,1;1,2,4,5,3,6,7,8,10,9,11,12,13,14,15};
ch′2,2={5,4,5,6,6,3,5,4,1,4,6,5,1,4,1;1,2,5,4,3,6,7,8,9,10,11,12,13,14,15};
ch′2,3={4,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch′2,4={6,5,3,4,6,4,2,5,1,2,2,3,6,5,1;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch′2,5={4,1,3,6,6,4,4,5,3,4,6,3,6,2,6;2,1,3,6,4,5,7,8,11,9,10,12,13,14,15};
ch′2,6={4,5,1,6,6,4,2,5,5,4,3,3,1,4,6;2,1,3,6,5,4,7,8,9,11,10,12,13,14,15};
经变异操作后新子种群3中的所有个体变为:
ch′3,1={1,1,2,5,2,5,2,6,4,4,6,3,6,6,6;2,1,5,3,6,4,7,8,10,11,9,12,13,14,15};
ch′3,2={5,5,5,4,1,3,4,6,5,2,2,3,1,4,1;3,2,1,6,5,4,7,8,10,9,11,12,13,14,15};
ch′3,3={6,3,3,5,2,4,5,4,1,2,2,3,6,2,6;2,3,1,4,6,5,7,8,9,11,10,12,13,14,15};
ch′3,4={4,4,1,3,6,4,2,5,2,4,6,5,6,2,6;2,1,5,3,6,4,7,8,11,10,9,12,13,14,15};
ch′3,5={1,1,2,5,2,5,2,6,4,4,6,3,6,4,1;3,2,1,5,6,4,7,8,10,9,11,12,13,14,15};
ch′3,6={4,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,3,6,5,4,7,8,10,9,11,12,13,14,15}。
执行步骤8.3:采用FBI&D和LDI方法改进每个新子种群中的所有个体并计算其适应度值;
新子种群1中的所有个体经FBI&D和LDI方法改进后变为:
ch′1,1={4,1,3,4,1,5,2,5,3,2,3,5,6,6,6;1,2,4,3,5,6,7,8,9,10,11,12,13,14,15};
ch′1,2={5,4,3,6,6,4,5,6,5,4,6,5,1,4,6;3,2,1,6,4,5,7,8,10,11,9,12,13,14,15};
ch′1,3={5,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch′1,4={6,5,5,5,6,3,4,6,5,4,4,5,1,2,1;3,1,6,2,5,4,7,8,10,11,9,12,13,14,15};
ch′1,5={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,3,1,5,6,4,7,8,10,9,11,12,13,14,15};
ch′1,6={6,4,5,5,6,1,5,4,5,2,3,3,6,4,6;3,2,1,5,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs′1,1=1990.76,rs′1,2=4349.60,rs′1,3=1359.80,rs′1,4=4620.80,rs′1,5=1174.64,rs′1,6=3872.84;
新子种群2中的所有个体经FBI&D和LDI方法改进后变为:
ch′2,1={4,5,5,1,2,5,2,5,4,4,3,5,1,4,1;1,2,4,5,3,6,7,8,10,9,11,12,13,14,15};
ch′2,2={5,4,5,6,6,3,5,4,2,4,6,5,1,4,1;1,2,5,4,3,6,7,8,9,10,11,12,13,14,15};
ch′2,3={4,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch′2,4={6,5,3,4,6,4,5,5,1,2,2,3,6,5,1;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch′2,5={4,1,3,6,6,4,5,5,3,4,6,3,6,2,6;2,1,3,6,4,5,7,8,11,9,10,12,13,14,15};
ch′2,6={4,5,1,6,6,4,2,5,5,4,3,3,1,4,6;2,1,3,6,5,4,7,8,9,11,10,12,13,14,15};
其适应度值即工作流响应时间分别为:rs′2,1=4925.68,rs′2,2=4920.72,rs′2,3=1374.00,rs′2,4=4285.32,rs′2,5=4833.60,rs′2,6=4636.92;
新子种群3中的所有个体经FBI&D和LDI方法改进后变为:
ch′3,1={1,1,2,5,2,5,2,6,3,4,6,3,6,6,6;2,1,5,3,6,4,7,8,10,11,9,12,13,14,15};
ch′3,2={5,5,5,4,1,3,4,6,5,2,6,3,1,4,1;2,1,5,3,6,4,7,8,10,11,9,12,13,14,15};
ch′3,3={6,3,3,5,2,5,5,4,1,2,2,3,6,2,6;2,3,1,4,6,5,7,8,9,11,10,12,13,14,15};
ch′3,4={4,4,1,3,6,4,5,5,2,4,6,5,6,2,6;2,1,5,3,6,4,7,8,11,10,9,12,13,14,15};
ch′3,5={1,1,2,5,2,5,2,6,3,4,6,3,6,4,1;3,2,1,5,6,4,7,8,10,9,11,12,13,14,15};
ch′3,6={4,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,3,6,5,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs′3,1=2507.88,rs′3,2=5225.68,rs′3,3=5742.76,rs′3,4=4945.96,rs′3,5=4508.88,rs′3,6=1313.60。
执行步骤8.4:对于每个子种群从当代子种群和新子种群中根据适应度值从小到大选出6个不同的个体作为新的当代子种群;
根据适应度值选择当代子种群1中的ch1,1、ch1,4、ch1,6和新子种群1中的ch′1,1、ch′1,3、ch′1,5,形成下一代子种群1,即GP1={ch1,1,ch1,4,ch1,6,ch′1,1,ch′1,3,ch′1,5};同理,GP2={ch2,1,ch2,2,ch2,5,ch′2,3,ch′2,4,ch′2,6},GP3={ch3,1,ch3,2,ch′3,1,ch′3,4,ch′3,5,ch′3,6};
令CP1=GP1,则当代子种群1的所有个体变为:
ch1,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,2={4,4,3,5,6,1,5,4,5,2,3,5,6,6,6;3,1,6,2,5,4,7,8,10,9,11,12,13,14,15};
ch1,3={4,1,3,4,1,5,2,5,1,2,3,5,6,6,6;1,2,4,3,6,5,7,8,10,11,9,12,13,14,15};
ch1,4={4,1,3,4,1,5,2,5,3,2,3,5,6,6,6;1,2,4,3,5,6,7,8,9,10,11,12,13,14,15};
ch1,5={5,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,6={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,3,1,5,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1,1=1174.64,rs1,2=1959.92,rs1,3=2086.76,rs1,4=1990.76,rs1,5=1359.80,rs1,6=1174.64;
令CP2=GP2,则当代子种群2的所有个体变为:
ch2,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,2={4,5,2,1,6,4,4,5,3,4,6,3,6,2,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,3={4,3,3,4,6,4,2,5,1,2,2,3,6,5,6;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,4={4,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,5={6,5,3,4,6,4,5,5,1,2,2,3,6,5,1;3,2,1,6,4,5,7,8,11,9,10,12,13,14,15};
ch2,6={4,5,1,6,6,4,2,5,5,4,3,3,1,4,6;2,1,3,6,5,4,7,8,9,11,10,12,13,14,15};
其适应度值即工作流响应时间分别为:rs2,1=1174.64,rs2,2=4468.32,rs2,3=4171.44,rs2,4=1374.00,rs2,5=4285.32,rs2,6=4636.92;
令CP3=GP3,当代子种群3的所有个体为:
ch3,1={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,2={4,5,1,6,2,5,4,6,3,4,4,5,6,5,1;3,2,1,4,5,6,7,8,10,11,9,12,13,14,15};
ch3,3={1,1,2,5,2,5,2,6,3,4,6,3,6,6,6;2,1,5,3,6,4,7,8,10,11,9,12,13,14,15};
ch3,4={4,4,1,3,6,4,5,5,2,4,6,5,6,2,6;2,1,5,3,6,4,7,8,11,10,9,12,13,14,15};
ch3,5={1,1,2,5,2,5,2,6,3,4,6,3,6,4,1;3,2,1,5,6,4,7,8,10,9,11,12,13,14,15};
ch3,6={4,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,3,6,5,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs3,1=1174.64,rs3,2=3770.80,rs3,3=2507.88,rs3,4=4945.96,rs3,5=4508.88,rs3,6=1313.60;
转到步骤5。
……
这样不断重复步骤5、6、8,5、6、8,……,5、6、8,迭代10代后,当代种群变为:
当代子种群1中的所有个体为:
ch1,1={6,5,3,5,6,3,5,4,5,4,3,3,6,6,6;2,1,3,5,6,4,7,8,10,9,11,12,13,14,15};
ch1,2={6,5,3,5,6,4,4,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,3={4,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,4={6,5,3,5,6,3,5,5,5,4,2,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,5={6,5,3,5,6,3,5,5,5,4,3,3,6,6,6;2,1,3,5,6,4,7,8,10,9,11,12,13,14,15};
ch1,6={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1,1=1202.52,rs1,2=1388.08,rs1,3=1313.60,rs1,4=1411.76,rs1,5=1200.24,rs1,6=1174.64;
当代子种群2中的所有个体为:
ch2,1={6,5,3,1,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,2={6,5,3,5,6,3,5,5,5,4,3,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,3={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,4={6,4,3,5,6,3,5,5,5,4,3,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,5={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,6={6,3,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,4,3,6,5,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间分别为:rs2,1=1288.04,rs2,2=1202.88,rs2,3=1174.64,rs2,4=1121.04,rs2,5=1092.80,rs2,6=1359.80;
当代子种群3中的所有个体为:
ch3,1={6,4,3,5,6,3,5,4,5,4,3,5,6,6,1;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,2={6,5,3,5,6,3,4,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,3={6,4,3,5,6,3,5,4,5,4,3,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,4={6,4,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,5={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,6={6,5,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs3,1=1200.60,rs3,2=1188.72,rs3,3=1124.60,rs3,4=1116.32,rs3,5=1174.64,rs3,6=1153.28。
执行步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤9,否则转到步骤6;
种群迭代了10代,没有满足终止的条件,因此转到步骤6。
执行步骤6:判断是否需要进行子种群间交流;如果需要则转到步骤7,否则直接转到步骤8;
种群迭代了10代,满足了子种群间交流的条件,转到步骤7。
执行步骤7:进行子种群间的交流;
执行步骤7.1:令精英个体集
Figure BDA0002311330590000371
由于ch1,6是CP1中的最优个体,因此选择ch1,6作为精英个体
Figure BDA0002311330590000372
由于ch2,5是CP2中的最优个体且TPS中尚不存在个体ch2,5,因此选择ch2,5作为精英个体
Figure BDA0002311330590000373
由于ch3,4是CP3中的最优个体且TPS中尚不存在个体ch3,4,因此选择ch3,4作为精英个体
Figure BDA0002311330590000374
这样TPS中的个体分别为:
Figure BDA0002311330590000375
Figure BDA0002311330590000376
Figure BDA0002311330590000377
其适应度值即工作流响应时间分别为:
Figure BDA0002311330590000381
执行步骤7.2:从TPS中找出CP1中不存在的精英个体集
Figure BDA0002311330590000382
从TPS中找出CP2中不存在的精英个体集
Figure BDA0002311330590000383
从TPS中找出CP3中不存在的精英个体集
Figure BDA0002311330590000384
用CTPS1中的精英个体
Figure BDA0002311330590000385
Figure BDA0002311330590000386
来替换子种群1中适应度值排名倒数的2个个体ch1,4和ch1,2;用CTPS2中的精英个体
Figure BDA0002311330590000387
来替换子种群2中适应度值排名倒数的1个个体ch2,6;用CTPS3中的精英个体
Figure BDA0002311330590000388
来替换子种群3中适应度值排名倒数的1个个体ch3,1
这样经子种群间的交流后,当代子种群1即CP1中的所有个体变为:
ch1,1={6,5,3,5,6,3,5,4,5,4,3,3,6,6,6;2,1,3,5,6,4,7,8,10,9,11,12,13,14,15};
ch1,2={6,4,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,3={4,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,4={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,5={6,5,3,5,6,3,5,5,5,4,3,3,6,6,6;2,1,3,5,6,4,7,8,10,9,11,12,13,14,15};
ch1,6={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1,1=1202.52,rs1,2=1116.32,rs1,3=1313.60,rs1,4=1092.80,rs1,5=1200.24,rs1,6=1174.64;
当代子种群2即CP2中的所有个体变为:
ch2,1={6,5,3,1,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,2={6,5,3,5,6,3,5,5,5,4,3,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,3={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,4={6,4,3,5,6,3,5,5,5,4,3,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,5={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,6={6,4,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs2,1=1288.04,rs2,2=1202.88,rs2,3=1174.64,rs2,4=1121.04,rs2,5=1092.80,rs2,6=1116.32;
当代子种群3即CP3中的所有个体变为:
ch3,1={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,2={6,5,3,5,6,3,4,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,3={6,4,3,5,6,3,5,4,5,4,3,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,4={6,4,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,5={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,6={6,5,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs3,1=1092.80,rs3,2=1188.72,rs3,3=1124.60,rs3,4=1116.32,rs3,5=1174.64,rs3,6=1153.28。
执行步骤8:每个子种群进行独立进化;
经独立进化后,当代子种群1中的所有个体变为:
ch1,1={6,4,3,5,6,3,5,5,5,4,3,3,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,2={6,5,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,3={6,4,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,4={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;1,2,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch1,5={6,5,3,5,6,3,5,5,5,4,3,4,6,6,6;1,2,3,5,6,4,7,8,10,9,11,12,13,14,15};
ch1,6={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1,1=1118.40,rs1,2=1153.28,rs1,3=1116.32,rs1,4=1092.80,rs1,5=1174.64,rs1,6=1092.80;
当代子种群2中的所有个体变为:
ch2,1={6,4,3,5,6,3,5,5,5,4,3,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,2={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,3={6,4,3,5,6,3,4,5,5,4,3,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,4={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;1,2,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,5={6,5,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch2,6={6,4,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs2,1=1121.04,rs2,2=1092.80,rs2,3=1135.12,rs2,4=1092.80,rs2,5=1153.28,rs2,6=1116.32;
当代子种群3中的所有个体变为:
ch3,1={6,4,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,3,6,5,4,7,8,10,9,11,12,13,14,15};
ch3,2={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;1,2,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,3={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
ch3,4={6,4,3,5,6,3,5,4,5,4,3,5,6,6,6;2,1,3,6,5,4,7,8,10,9,11,12,13,14,15};
ch3,5={6,4,3,5,6,3,5,5,5,4,3,4,6,6,6;3,2,1,5,6,4,7,8,10,9,11,12,13,14,15};
ch3,6={6,4,3,5,6,3,5,5,5,4,6,5,6,6,6;2,1,5,3,6,4,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs3,1=1116.32,rs3,2=1092.80,rs3,3=1092.80,rs3,4=1124.60,rs3,5=1092.80,rs3,6=1116.32。
转到步骤5
……
这样不断重复执行步骤5至步骤8,迭代50代后,当代种群变为:
当代子种群1中的所有个体为:
ch1,1={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,5,4,6,7,8,10,9,11,12,13,14,15};
ch1,2={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,5,6,4,7,8,10,9,11,12,13,14,15};
ch1,3={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,5,4,6,7,8,10,11,9,12,13,14,15};
ch1,4={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,5,4,3,6,7,8,10,9,11,12,13,14,15};
ch1,5={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,4,5,6,7,8,10,11,9,12,13,14,15};
ch1,6={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,5,6,4,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1,1=1018.08,rs1,2=1018.08,rs1,3=1018.08,rs1,4=1018.08,rs1,5=1018.08,rs1,6=1018.08;
当代子种群2中的所有个体为:
ch2,1={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,4,3,6,5,7,8,10,9,11,12,13,14,15};
ch2,2={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,4,6,5,7,8,10,9,11,12,13,14,15};
ch2,3={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,5,4,6,7,8,10,11,9,12,13,14,15};
ch2,4={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,4,3,5,6,7,8,10,9,11,12,13,14,15};
ch2,5={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,5,3,4,6,7,8,10,11,9,12,13,14,15};
ch2,6={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,4,5,6,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs2,1=1018.08,rs2,2=1018.08,rs2,3=1018.08,rs2,4=1018.08,rs2,5=1018.08,rs2,6=1018.08;
当代子种群3中的所有个体为:
ch3,1={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,4,3,6,5,7,8,10,9,11,12,13,14,15};
ch3,2={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,4,5,6,7,8,10,9,11,12,13,14,15};
ch3,3={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,4,6,5,7,8,10,9,11,12,13,14,15};
ch3,4={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,4,5,6,7,8,10,11,9,12,13,14,15};
ch3,5={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,5,4,6,7,8,10,9,11,12,13,14,15};
ch3,6={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,5,3,4,6,7,8,10,9,11,12,13,14,15};
其适应度值即工作流响应时间分别为:rs3,1=1018.08,rs3,2=1018.08,rs3,3=1018.08,rs3,4=1018.08,rs3,5=1018.08,rs3,6=1018.08。
执行步骤9:输出当代种群中的最优个体,其对应的调度方案为优化方案;
当代种群中的最优个体为ch1,1={6,4,3,5,6,3,5,5,5,4,4,4,6,6,6;1,2,3,5,4,6,7,8,10,9,11,12,13,14,15},其对应的工作流响应时间为rs=1018.08,对应的调度方案如表10所示。
调度顺序 任务编号 开始时间 执行时间 结束时间 虚拟机编号
1 1 0 129.12 129.12 6
2 2 0 185.16 185.16 4
3 3 0 182.16 182.16 3
4 5 185.16 254.32 439.48 6
5 4 129.12 193.12 322.24 5
6 6 182.16 269.16 451.32 3
7 7 451.32 11.76 463.08 5
8 8 463.08 2.96 466.04 5
9 10 466.04 60.64 526.68 4
10 9 466.04 196.40 662.44 5
11 11 526.68 259.44 786.12 4
12 12 786.12 201.68 987.80 4
13 13 987.80 9.28 997.08 6
14 14 997.08 10.00 1007.08 6
15 15 1007.08 2.60 1009.68 6
表10
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。

Claims (5)

1.一种采用多种群协同进化遗传算法的云工作流调度优化方法,其特征在于:包括以下步骤:
步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,…,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;
获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,I;
Figure FDA0002311330580000011
获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
Figure FDA0002311330580000012
获取云计算环境下的虚拟机集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执行时的平均处理时间
Figure FDA0002311330580000013
需要从共享数据库获得输入文件的平均传输时间
Figure FDA0002311330580000014
需要从其它虚拟机获得输入文件的平均传输时间
Figure FDA0002311330580000015
ti执行时的平均处理时间计算如下:
Figure FDA0002311330580000016
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
Figure FDA0002311330580000021
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
Figure FDA0002311330580000022
其中
Figure FDA0002311330580000023
Figure FDA00023113305800000214
和ti间的文件平均传输时间,其计算如下:
Figure FDA0002311330580000024
然后,计算任务i的自下而上排序值
Figure FDA0002311330580000025
其计算过程如下:
对于没有子任务的结束任务i:
Figure FDA0002311330580000026
其它任务的自下而上排序值
Figure FDA0002311330580000027
采用如下递归公式进行计算:
Figure FDA0002311330580000028
接着,计算任务i的自上而下排序值
Figure FDA0002311330580000029
其计算过程如下:
对于没有父任务的开始任务i:
Figure FDA00023113305800000210
其它任务的自上而下排序值
Figure FDA00023113305800000211
采用如下递归公式进行计算:
Figure FDA00023113305800000212
最后,计算任务i的排序值ranki
Figure FDA00023113305800000213
其中,i=1,2…,I;
步骤3:初始化当代种群;
当代种群中包含S个子种群,每个子种群又包含N个个体,N为偶数且N>S,其初始化过程如下:
对每个当代子种群采用基于关键任务优先调度和任务最早完成时间的个体生成方法生成一个个体,然后采用基于随机的个体生成方法生成剩余的N-1个不同的个体;
所述个体采用2I位整数编码,I为任务数量,其方法如下:ch={g1,…,gI,gI+1,…,g2I},基因gi是一个非负整数;其中,{g1,…,gI}是虚拟机分配列表,gi表示给任务i分配的虚拟机编号,即把任务i分配给虚拟机gi,gi∈VMi,i=1,…,I;{gI+1,…,g2I}是任务调度顺序列表,是1,…,I的一个排列,且满足任务的时序约束,即任何任务都不能排在其父任务的前面,gI+i表示第i个被调度的任务的编号,即任务gI+i是第i个被调度的;
所述基于关键任务优先调度和任务最早完成时间的个体生成方法包括如下步骤:
步骤A1:令所有虚拟机的可得时间段列表vatlj={[0,M]},j=1,2,…,J,M为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,2,…,I;令任务集
Figure FDA0002311330580000031
UT=T,令任务集P(ti)=PRi,i=1,2,…,I,令变量k=1;
步骤A2:把UT中
Figure FDA0002311330580000032
的任务移动到RT中,如果RT不为空,则转到步骤A3,否则转到步骤A7;
步骤A3:从RT中的取出一个rank最大的任务,不妨设为ti,gI+k=i;
步骤A4:令ti的可得虚拟机集AVMi=VMi,计算把ti分别分配给AVMi中的每个虚拟机后ti的完成时间:
步骤A4.1:从AVMi中取出一个虚拟机,不妨设为vmj
步骤A4.2:计算ti分配给vmj处理后的执行时间
Figure FDA0002311330580000033
步骤A4.3:在vatlj中从早到晚找出一个空闲时段[νjj],满足υjj≥eti,j和υj-eti,j≥rti
步骤A4.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rti},完成时间fi,j=si,j+eti,j
步骤A4.5:若AVMi不为空,则转到步骤A4.1,否则转到步骤A5;
步骤A5:按虚拟机顺序找出能最早完成ti的虚拟机,不妨设为vmj,gi=j,把ti分配给vmj
步骤A5.1:令ti的开始时间si=si,j,ti的完成时间fi=fi,j
步骤A5.2:更新ti的子任务的就绪时间
Figure FDA0002311330580000041
步骤A5.3:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤A6:令k=k+1,在所有
Figure FDA0002311330580000042
中删除ti
Figure FDA0002311330580000043
转到步骤A2;
步骤A7:输出一个基于关键任务优先调度和任务最早完成时间的个体{g1,…,gI,gI+1,…,g2I},操作结束;
其中:
ωi,j:是vmj处理ti的时间,
Figure FDA0002311330580000044
Figure FDA0002311330580000045
是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,
Figure FDA0002311330580000046
Figure FDA0002311330580000047
是处理
Figure FDA0002311330580000048
的虚拟机;
τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,
Figure FDA0002311330580000049
所述基于随机的个体生成方法包括如下步骤:
步骤B1:令任务集
Figure FDA00023113305800000410
UT=T,令任务集P(ti)=PRi,i=1,2,…,I,令变量k=1;
步骤B2:把UT中
Figure FDA00023113305800000411
的ti移到RT中,如果RT不为空,则转到步骤B3,否则转到步骤B5;
步骤B3:从RT中随机取出一个任务,不妨设为ti,从VMi中随机选择一个虚拟机,不妨设为vmj,令gi=j,gI+k=i,k=k+1;
步骤B4:在所有
Figure FDA00023113305800000412
中删除ti
Figure FDA00023113305800000413
转到步骤B2;
步骤B5:输出一个随机生成的个体{g1,…,gI,gI+1,…,g2I},操作结束;
步骤4:采用FBI&D和LDI方法改进初始当代种群中的所有个体并计算其适应度值;
所述适应度值为工作流响应时间rs,其计算方法如下:
Figure FDA0002311330580000051
其中:rfi是任务i的响应时间,
Figure FDA0002311330580000052
SFLi是任务i输出给共享数据库的输出文件集,即
Figure FDA0002311330580000053
适应度值越小,个体越优;
所述FBI&D包括如下步骤:
步骤C1:令反向工作流响应时间
Figure FDA0002311330580000054
其中M为一个接近无穷大的数;
步骤C2:采用基于插入模式的串行个体解码方法对个体ch进行解码,获得所有任务的完成时间f1,…,fI及其工作流响应时间rs;如果rs小于
Figure FDA0002311330580000055
则转到步骤C3,否则,转到步骤C6;
步骤C3:把个体ch中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把ch中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成反向个体
Figure FDA0002311330580000056
步骤C4:对
Figure FDA0002311330580000057
采用基于插入模式的串行反向个体解码方法进行解码获得所有任务反向完成时间
Figure FDA0002311330580000058
及其反向工作流响应时间
Figure FDA0002311330580000059
Figure FDA00023113305800000510
小于rs,则转到步骤C5,否则,转到步骤C6;
步骤C5:把反向个体
Figure FDA00023113305800000511
中的任务调度顺序列表根据任务反向完成时间
Figure FDA00023113305800000512
从大到小重新排列,即把
Figure FDA00023113305800000513
中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成个体ch,转到步骤C2;
步骤C6:输出个体ch及其适应度值即工作流响应时间rs,操作结束;
所述LDI方法包括如下步骤:
步骤D1:计算各虚拟机负载
Figure FDA00023113305800000514
步骤D2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤D3,否则转到步骤D4;
步骤D3:令任务集
Figure FDA00023113305800000515
转到步骤D5;
步骤D4:令任务集STj′=Tj′,转到步骤D5;
步骤D5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机的负载是最高的任务i′,转到步骤D6;否则转到步骤D7;
步骤D6:令gi′=j′,形成新的个体
Figure FDA0002311330580000061
采用FBI&D方法对
Figure FDA0002311330580000062
进行解码与改进,如果相对于原个体有改进,则用此改进的个体替换原个体,转到步骤D7;否则转到步骤D5;
步骤D7:LDI操作结束;
步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤9,否则转到步骤6;
所述终止条件为迭代到指定的代数TG或连续迭代GG代最优个体没有改进;
步骤6:判断是否需要进行子种群间交流;如果需要则转到步骤7,否则直接转到步骤8;
所述是否需要进行子种群间交流的判断条件为每迭代EFG代或自上次交流后连续迭代EVG代最优个体没有改进;
步骤7:进行子种群间的交流;
步骤7.1:令精英个体集
Figure FDA0002311330580000063
从每个当代子种群s即CPs中根据适应度值从优到劣选出当前TPS中尚不存在的1个个体,不妨设其为
Figure FDA0002311330580000064
s=1,…,S,并
Figure FDA0002311330580000065
放到TPS中;
步骤7.2:对每个CPs,s=1,…,S,从TPS中找出CPs中不存在的精英个体集CTPSs,用CTPSs中的个体替换CPs中适应度值排名倒数的|CTPSs|个个体,形成新的CPs
步骤8:每个子种群进行独立进化;
步骤8.1:对每个当代子种群进行N/2次交叉操作形成新子种群;
步骤8.2:对每个新子种群中的所有个体进行变异操作;
步骤8.3:采用FBI&D和LDI方法改进新子种群中的所有个体并计算其适应度值;
步骤8.4:对于每个子种群从当代子种群和新子种群中根据适应度值从小到大选出N个不同的个体作为新的当代子种群,转到步骤5;
步骤9:输出当代种群中的最优个体,其对应的调度方案为优化方案。
2.根据权利要求1所述的一种采用多种群协同进化遗传算法的云工作流调度优化方法,其特征在于:所述步骤C2中基于插入模式的串行个体解码方法具体步骤如下:
步骤E1:令所有任务的就绪时间rti=0,i=1,…,I,令变量k=1,令虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,M为一个接近无穷大的数;
步骤E2:选取编号为gI+k的任务,不妨设i=gI+k
步骤E3:基于插入模式把任务i分配给虚拟机j=gi
步骤E3.1:计算任务i的执行时间
Figure FDA0002311330580000071
步骤E3.2:在vatlj中从早到晚找出一个空闲时段[νjj]满足υjj≥eti和υj-eti≥rti
步骤E3.3:计算任务i的开始时间和完成时间:si=max{νj,rti},fi=si+eti;更新任务i的子任务的就绪时间
Figure FDA0002311330580000072
步骤E3.4:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤E4:令k=k+1,如果k≤I则转到步骤E2,否则步骤E5;
步骤E5:获得所有任务的开始时间和完成时间:si、fi,i=1,…,I,计算适应度值即工作流响应时间rs;操作结束。
3.根据权利要求1所述的一种采用多种群协同进化遗传算法的云工作流调度优化方法,其特征在于:所述步骤C4中基于插入模式的串行反向个体解码方法具体步骤如下:
步骤F1:令所有任务的反向就绪时间
Figure FDA0002311330580000073
令变量k=1;令所有虚拟机的可得时间段列表vatlj={[0,M]},j=1,…,J,其中M为一个接近无穷大的数;
步骤F2:选取编号为i=gI+k的任务;
步骤F3:基于插入模式把任务i分配给虚拟机gi,不妨设j=gi
步骤F3.1:计算任务i的执行时间
Figure FDA0002311330580000074
步骤F3.2:在vatlj中从早到晚找出一个空闲时段[νjj],满足υjj≥eti
Figure FDA0002311330580000075
步骤F3.3:计算任务i的反向开始时间
Figure FDA0002311330580000076
反向完成时间
Figure FDA0002311330580000077
更新任务i的父任务的就绪时间
Figure FDA0002311330580000078
步骤F3.4:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的
Figure FDA0002311330580000079
Figure FDA00023113305800000710
步骤F4:令k=k+1,如果k≤I,则转到步骤F2,否则步骤F5;
步骤F5:获得所有任务的反向开始时间和反向完成时间:
Figure FDA00023113305800000711
计算反向工作流响应时间
Figure FDA0002311330580000081
操作结束。
4.根据权利要求1所述的一种采用多种群协同进化遗传算法的云工作流调度优化方法,其特征在于:所述步骤8.1中交叉操作的具体步骤如下:
步骤G1:基于排序的轮赌法从当代子种群中随机选择两个不同的个体作为父体1和父体2,不妨设为
Figure FDA0002311330580000082
步骤G2:随机产生一个1到2I-1的正整数α,如果1≤α≤I则转到步骤G3,否则转到步骤G4;
步骤G3:生成子体
Figure FDA0002311330580000083
和子体
Figure FDA0002311330580000084
子体chc1的前α个基因来自于父体chp1
Figure FDA0002311330580000085
后2I-α个基因来自于父体chp2
Figure FDA0002311330580000086
子体chc2的前α个基因来自于父体chp2
Figure FDA0002311330580000087
后2I-α个基因来自于父体chp1
Figure FDA0002311330580000088
转到步骤G5;
步骤G4:生成子体
Figure FDA0002311330580000089
和子体
Figure FDA00023113305800000810
子体chc1的前α个基因来自于父体chp1
Figure FDA00023113305800000811
后2I-α个基因来自于父体chp2的调度顺序列表中删除基因值为
Figure FDA00023113305800000812
后的基因列表;子体chc2的前α个基因来自于父体chp2
Figure FDA00023113305800000813
后2I-α个基因来自于父体chp1的调度顺序列表中删除基因值为
Figure FDA00023113305800000814
后的基因列表;转到步骤G5;
步骤G5:输出子体
Figure FDA00023113305800000815
和子体
Figure FDA00023113305800000816
操作结束;
所述步骤G1中基于排序的轮赌法从当代子种群中随机选择两个不同个体作为父体1和父体2的具体步骤如下:
步骤G1.1:对当代子种群中的个体按其适应度值从小到大进行排序,获得个体n的排序值rkn,n=1,…,N,其中排第一的其取1,排第二的其取2,以此类推,排最后一名的其取N;
步骤G1.2:计算个体n被选中的概率
Figure FDA00023113305800000817
R>1为区分度系数;
步骤G1.3:计算累计概率
Figure FDA00023113305800000818
步骤G1.4:产生一个随机数λ1∈[0,1),如果
Figure FDA00023113305800000819
那么选择个体n作为父体1;
步骤G1.5:产生一个随机数λ2∈[0,1),如果
Figure FDA0002311330580000091
并且n′≠n,那么选择个体n′作为父体2,转到步骤G1.6,否则转到步骤G1.5;
步骤G1.6:个体选择操作结束。
5.根据权利要求1所述的一种采用多种群协同进化遗传算法的云工作流调度优化方法,其特征在于:所述步骤8.2中的变异操作的具体步骤如下:
步骤H1:产生一个随机数λ∈[0,1),如果λ<pm则转到步骤H2;否则转到步骤H6;
步骤H2:随机选择一个基因gi,如果1≤i≤I则转到步骤H3,否则转到步骤H4;
步骤H3:从可以处理ti的虚拟机集VMi中重新随机选择一个虚拟机vmj,gi=j,转到步骤H6;
步骤H4:如果任务gi存在父任务则向前找到第一个父任务gi′,令位置值pos1=i′+1,否则令pos1=I+1;如果任务gi存在子任务则向后找到第一个子任务gi″,令位置值pos2=i″-1,否则令pos2=2I;
步骤H5:在[pos1,pos2]之间重新随机选择一个位置插入gi,转到步骤H6;
步骤H6:操作结束;
其中:pm∈(0,1)为变异率。
CN201911259899.8A 2019-12-10 2019-12-10 采用多种群协同进化遗传算法的云工作流调度优化方法 Withdrawn CN111026506A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911259899.8A CN111026506A (zh) 2019-12-10 2019-12-10 采用多种群协同进化遗传算法的云工作流调度优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911259899.8A CN111026506A (zh) 2019-12-10 2019-12-10 采用多种群协同进化遗传算法的云工作流调度优化方法

Publications (1)

Publication Number Publication Date
CN111026506A true CN111026506A (zh) 2020-04-17

Family

ID=70205360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911259899.8A Withdrawn CN111026506A (zh) 2019-12-10 2019-12-10 采用多种群协同进化遗传算法的云工作流调度优化方法

Country Status (1)

Country Link
CN (1) CN111026506A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116027739A (zh) * 2022-07-18 2023-04-28 中国人民解放军海军航空大学 机群出入库转运协同调度优化方法、装置和设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116027739A (zh) * 2022-07-18 2023-04-28 中国人民解放军海军航空大学 机群出入库转运协同调度优化方法、装置和设备

Similar Documents

Publication Publication Date Title
CN113821318B (zh) 一种物联网跨域子任务组合协同计算方法及系统
CN112685138B (zh) 云环境下基于多种群混合智能优化的多工作流调度方法
CN111126800B (zh) 使用分层自适应智能算法的多模资源受限项目调度方法
CN115421885B (zh) 一种分布式多目标云任务的调度方法、装置及云服务系统
CN110928648B (zh) 融合启发式和智能计算的云工作流分段在线调度优化方法
CN111026534B (zh) 云计算环境下基于多种群遗传算法的工作流执行优化方法
CN111090510A (zh) 混合启发式和遗传算法的两阶段云工作流调度优化方法
CN110780985A (zh) 一种有限时间的并行任务调度方法与装置
CN111026506A (zh) 采用多种群协同进化遗传算法的云工作流调度优化方法
CN111008745A (zh) 混合启发式与智能算法的多模资源受限项目调度优化方法
CN118312312A (zh) 基于多目标强化学习的云数据中心负载均衡智能优化方法
CN110968428B (zh) 云工作流虚拟机配置和任务调度协同优化方法
CN110991917B (zh) 采用两阶段遗传算法的多模资源受限项目调度优化方法
CN111078361A (zh) 基于分布式估计算法的云工作流调度优化方法
CN110928670B (zh) 云计算环境下基于偏序自适应遗传算法的工作流优化方法
CN111047183A (zh) 基于分层自适应智能计算算法的云工作流调度优化方法
CN110941487B (zh) 云计算环境下基于多阶段遗传算法的工作流调度优化方法
CN110928671B (zh) 基于层次与负载均衡遗传算法的云工作流调度优化方法
CN111078381A (zh) 基于二维编码遗传算法的云工作流调度优化方法
CN110991758A (zh) 使用二维定长编码智能计算算法的云工作流调度优化方法
CN111061563A (zh) 云计算环境下基于多解码遗传算法的工作流调度优化方法
CN111026533A (zh) 云计算环境下基于分布式估计算法的工作流执行优化方法
CN110928669B (zh) 基于多种群遗传算法的能耗感知云工作流调度优化方法
CN111078360A (zh) 云计算环境下基于随机键遗传算法的工作流调度优化方法
CN114980216A (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

Application publication date: 20200417

WW01 Invention patent application withdrawn after publication