CN111026534B - 云计算环境下基于多种群遗传算法的工作流执行优化方法 - Google Patents

云计算环境下基于多种群遗传算法的工作流执行优化方法 Download PDF

Info

Publication number
CN111026534B
CN111026534B CN201911259967.0A CN201911259967A CN111026534B CN 111026534 B CN111026534 B CN 111026534B CN 201911259967 A CN201911259967 A CN 201911259967A CN 111026534 B CN111026534 B CN 111026534B
Authority
CN
China
Prior art keywords
virtual machine
task
time
individual
population
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911259967.0A
Other languages
English (en)
Other versions
CN111026534A (zh
Inventor
单晓杭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
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 University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN201911259967.0A priority Critical patent/CN111026534B/zh
Publication of CN111026534A publication Critical patent/CN111026534A/zh
Application granted granted Critical
Publication of CN111026534B publication Critical patent/CN111026534B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种云计算环境下基于多种群遗传算法的工作流执行优化方法,包括以下步骤:获取执行优化所需信息;计算任务的层次值;初始化当代种群;解码改进当代种群并计算适应度值;分若干个子种群进行独立进化,并适时进行子种群间的交流;直到满足终止条件输出执行优化结果。相对于传统方法本发明设计采用了基于层次和效率比的个体随机生成、基于拓扑排序的整数编码、基于插入模式的串行个体解码、向前向后个体解码改进、多种群协调进化等方法和策略,实现资源配置和任务调度的集成协同优化,提高了寻优能力,改进了算法整体效率。

Description

云计算环境下基于多种群遗传算法的工作流执行优化方法
技术领域
本发明涉及计算机技术、信息技术和系统工程领域,具体涉及一种云工作流执行优化方法,更具体的说,尤其涉及一种云计算环境下基于多种群遗传算法的工作流执行优化方法。
背景技术
云计算环境下的工作流,简称“云工作流”,是云计算与工作流相关技术的整合,在需要高效计算性能和大规模存储支撑的科学计算和跨组织业务协作如:电子商务、应急管理、供应链管理和健康医疗等领域具有广泛的应用前景。在云工作流中,存在多种类型的计算资源和多个任务,且任务与任务之间存在着时序约束,执行时通常以虚拟机作为计算资源的最小分配单位负责接收并处理这些任务。云工作流执行或调度优化则是指在满足工作流任务时序和用户需求约束下如何合理配置虚拟机、以及如何把工作流任务分配到合适的虚拟机上并确定它们的执行顺序以优化某些性能指标如:执行成本、响应时间等。云工作流执行优化直接决定了整个云工作流系统的性能,随着云计算环境下过程自动化需求、特别是大规模协助和分布式电子商务和科学计算应用需求的快速增长,云工作流执行优化已成为一个重要研究内容。
当前进行云工作流执行优化时通常只从资源配置或任务调度的角度进行,缺乏资源配置和任务调度的协同优化研究。事实上,云工作流资源配置和任务调度作为两个优化阶段相互作用,共同影响着云工作流执行的性能指标,针对这两者的协同优化研究能更有效地提升云工作流的执行性能。
因此,随着云工作流复杂性及其应用需求的增加,亟需设计一种更高效的集成协同优化方法来解决云工作流资源配置和任务调度优化问题,提升云工作流执行的性能。
发明内容
针对当前进行云工作流执行优化时通常只从资源配置或任务调度的角度进行,缺乏资源配置和任务调度的集成协同优化方法,云工作流执行性能不高等不足,本发明提供了一种云计算环境下基于多种群遗传算法的工作流执行优化方法,有效提高了云工作流执行性能。
本发明解决其技术问题所采用的技术方案如下:一种云计算环境下基于多种群遗传算法的工作流执行优化方法,包括以下步骤:
步骤1:获取云工作流执行优化所需的信息;
获取任务集T={t1,...,tI},ti表示任务i,即编号为i的任务;其中I是需要调度的任务数量;
获取任务间的时序关系:任务i的父任务集合PRi,任务i的子任务集合SCi,其中i=1,…,I;
获取任务相关参数:任务i的长度leni、leni>0,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表IFLi任务i被处理后产生的输出文件列表OFLi、/>及文件列表中文件file的大小file.size,其中:i=1,…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:/>
获取云计算环境下的虚拟机类型集合VM={vm1,vm2,…,vmJ},其中J是虚拟机的类型数量,vmj表示j类虚拟机;
获取虚拟机相关参数:j类虚拟机的计算能力psj,j类虚拟机的带宽bwj,j类虚拟机的单位时间成本vcj,j类虚拟机的固定起租成本fcj,j类虚拟机的最小计费时间单位utj,j类虚拟机的最小起租时间ftj;租用j类虚拟机的成本计算如下:
其中:lt为租用时间,j=1,2…,J;
获取云计算环境下工作流执行的成本约束Budget与时间约束Deadline;若没有成本约束则设置Budget=MBV,若没有时间约束则设置Deadline=MDV;其中:MBV为成本上限,MDV为时间上限;
步骤2:计算任务的层次值;
对于没有父任务的开始任务i,其层次值为:
lvli=1 (1)
基于上述公式,其它任务的层次值采用如下递归公式进行计算:
步骤3:初始化当代种群;
当代种群中包含S个子种群,每个子种群又包含N个个体,N为偶数且N>S,其初始化过程如下:对每个当代子种群采用基于层次和效益比的个体随机生成方法生成N个不同的个体;
所述个体编码方法如下:ch={gr1,…,grI;gs1,…,gsI;gt1,…,gtI},其中{gr1,…,grI}是任务调度顺序列表,为任务编号的一个拓扑排序;{gs1,…,gsI}是虚拟机实例列表,即虚拟机分配列表,gsi表示给任务i分配的虚拟机实例编号,gs1,…,gsI的取值为1到I之间的整数值;{gt1,…,gtI}是虚拟机类型列表,gti表示编号为i的虚拟机实例的类型,gt1,…,gtI的取值为1到J之间的整数值;
所述基于层次和效益比的个体随机生成方法包括如下步骤:
步骤A1:根据任务层次值从小到大随机排列任务,即层次值小的排在大的前面,具有相同层次值的则随机排列,形成个体的任务调度顺序列表{gr1,…,grI};
步骤A2:随机生成I个1到J之间的整数:π1,…,πI;令gti=πi,i=1,…,I,生成虚拟机类型列表{gt1,…,gtI};
步骤A3:基于效益比生成个体的虚拟机分配列表{gs1,…,gsI};获得所有任务的开始时间si和结束时间fi,i=1,…,I;
步骤A3.1:令已分配任务的虚拟机实例集所有虚拟机实例的可得时间段列表vatl1=…=vatlI={[0,∞]};令所有任务的就绪时间rt1=…=rtI=0;令变量δ=1;
步骤A3.2:令变量i=grδ,变量k=1;计算把ti分别分配给每个潜在虚拟机实例后的综合效益比:
步骤A3.2.1:计算ti分配给编号为k的虚拟机实例后的执行时间其中:/>是把ti分配给编号为k的虚拟机实例处理时任务的处理时间,/> 是编号为k的虚拟机实例的处理能力;/>是把ti分配给编号为k的虚拟机实例处理时需要从其它的虚拟机获得输入文件的文件传输时间,
k-是处理ti-的虚拟机实例编号,和/>是编号为k和k-的虚拟机实例的带宽;/>是把ti分配给编号为k的虚拟机实例处理时需要从共享数据库获得输入文件的文件传输时间,/>
步骤A3.2.2:在vatlk中从早到晚找出一个空闲时段[νkk],满足υkk≥eti,k和υk-eti,k≥rti
步骤A3.2.3:计算ti分配给编号为k的虚拟机实例后的开始时间si,k=max{νk,rti},完成时间fi,k=si,k+eti,k
步骤A3.2.4:计算综合效益比ξi,k
如果insk∈INS,其中insk表示编号为k的虚拟机实例,则
其中:θ∈[0,1]是权重系数,μ>0是成本与时间的协调系数;为已有任务分配给insk的情况下把ti分配给insk后insk的租用时间,lt′k=Rnt′k-Hrt′k为ti还没有分配给insk前insk的租用时间,/>为ti还没有分配给insk前insk的归还时间;为ti还没有分配给insk前insk的开始租用时间;
如果
其中/>为还没有任务分配给insk的情况下把ti分配给insk后insk的租用时间;
步骤A3.2.5:令k=k+1,如果k≤I,转到步骤A3.2.1;否则转到步骤A3.3;
步骤A3.3:按顺序从ξi,1,…,ξi,I中找出一个最小的,不妨设为如果编号为/>的虚拟机实例/>则/>
步骤A3.4:把任务i分配给编号为的虚拟机实例,令/>
步骤A3.4.1:计算任务的开始时间结束时间/>
步骤A3.4.2:更新任务i的子任务的就绪时间
步骤A3.4.3:在中从早到晚找出一个空闲时段/>满足/>
步骤A3.4.4:在中删除/>插入区间长度大于0的/>和/>
步骤A3.5:令δ=δ+1;如果δ≤I,那么转到步骤A3.2,否则转到步骤A3.6;
步骤A3.6:获得虚拟机分配列表{gs1,…,gsI};
步骤A4:输出一个个体{gr1,…,grI;gs1,…,gsI;gt1,…,gtI},操作结束;
步骤4:对当代种群中的所有个体采用FBI&D进行解码与改进,获得所有个体的工作流响应时间和执行成本,然后计算所有不可行个体的相对适应度值和可行个体的绝对适应度值;
对于每个当代子种群中的每个个体chn,所述FBI&D包括如下步骤:
步骤B1:令工作流反向响应时间
步骤B2:采用基于插入模式的串行个体解码方法对个体chn进行解码,获得所有任务的完成时间f1,…,fI及其工作流响应时间rsn;如果rsn小于则转到步骤B3,否则,转到步骤B6;
步骤B3:把个体chn中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把chn中的基因gri设置为倒数第i个完成的任务,i=1,…,I,形成反向个体
步骤B4:采用基于插入模式的串行反向个体解码方法对反向个体进行解码,获得所有任务反向完成时间/>及其工作流反向响应时间/>若/>小于rsn,则转到步骤B5,否则,转到步骤B6;
步骤B5:把反向个体中的任务调度顺序列表根据任务反向完成时间/>从大到小重新排列,即把/>中的基因gri设置为倒数第i个完成的任务,i=1,…,I,形成个体chn,转到步骤B2;
步骤B6:输出个体chn及其工作流响应时间rsn,并计算其工作流执行成本ctn,操作结束;
所述基于插入模式的串行个体解码方法对个体chn进行解码包括如下步骤:
步骤C1:令所有任务的就绪时间rt1=rt2=…=rtI=0;令变量δ=1;令所有虚拟机实例的可得时间段列表vatlk={[0,∞]},k∈{gs1,…,gsI};
步骤C2:选取编号为i=grδ的任务;
步骤C3:基于插入模式把任务i分配给编号为k=gsi的虚拟机实例;
步骤C3.1:计算任务i的执行时间
步骤C3.2:在vatlk中从早到晚找出一个空闲时段[νkk],满足υkk≥eti和υk-eti≥rti
步骤C3.3:计算任务i的开始时间si=max{νk,rti},完成时间fi=si+eti
步骤C3.4:更新任务i的子任务的就绪时间
步骤C3.5:在虚拟机可得时间段列表vatlk中删除[νkk],插入区间长度大于0的[νk,si]和[fik];
步骤C4:δ=δ+1,如果δ≤I,则转到步骤C2,否则步骤C5;
步骤C5:获得任务的开始时间和结束时间:si、fi,i=1,…,I,计算工作流响应时间rsn,操作结束;
所述基于插入模式的串行反向个体解码方法对反向个体进行解码包括如下步骤:
步骤D1:令所有任务的反向就绪时间其中,SFLi是任务i输出给共享数据库的输出文件集合,即/>i=1,…,I;令变量δ=1;令虚拟机可得时间段列表vatlk={[0,∞]},k∈{gs1,…,gsI};
步骤D2:选取编号为i=grδ的任务;
步骤D3:基于插入模式把任务i分配给编号为k=gsi的虚拟机实例:
步骤D3.1:计算任务i的执行时间
步骤D3.2:在vatlk中从早到晚找出一个空闲时段[νkk],满足υkk≥eti
步骤D3.3:计算任务i的反向开始时间反向完成时间/>
步骤D3.4:更新任务i的父任务的反向就绪时间
步骤D3.5:在虚拟机可得时间段列表vatlk中删除[νkk],插入区间长度大于0的和/>
步骤D4:令δ=δ+1,如果δ≤I,则转到步骤D2,否则步骤D5;
步骤D5:获得任务的反向开始时间和反向完成时间/>i=1,…,I,及工作流反向响应时间/>操作结束;
步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤9,否则转到步骤6;
所述终止条件为迭代到指定的代数TG或连续迭代GG代都没有出现可行个体或最优可行个体没有改进;
步骤6:判断是否满足进行子种群间交流的条件;如果满足则转到步骤7,否则转到步骤8;
所述进行子种群间交流的条件为每迭代EFG代或自上次交流后连续迭代EVG代最优个体没有改进;
步骤7:进行子种群间的交流;
步骤7.1:令精英个体集从每个当代子种群s即CPs中从优到劣选出当前TPS中尚不存在的1个个体,不妨设其为/>s=1,…,S,把/>放到TPS中;
步骤7.2:对每个CPs,s=1,…,S,从TPS中找出CPs中不存在的精英个体集合CTPSs,用CTPSs中的个体替换CPs中从优到劣排名倒数的|CTPSs|个个体,形成新的CPs
步骤8:子种群进行独立进化;
步骤8.1:对每个当代子种群进行交叉操作形成新子种群;
步骤8.2:对每个新子种群进行变异操作;
步骤8.3:对每个新子种群中的所有个体采用FBI&D进行解码与改进,获得所有个体的工作流响应时间和执行成本,然后计算所有不可行个体的相对适应度值和可行个体的绝对适应度值;
步骤8.4:对于每个子种群,从优到劣从当代子种群和新子种群中选出N个不同的个体形成新的当代子种群,转到步骤5;
对每个当代子种群,所述交叉操作包括如下步骤:
步骤E1:令n=1,新子种群为空;
步骤E2:采用基于排序的轮赌法从当代子种群中随机选择两个不同个体作为父体1和父体2,不妨设为 不妨设通过交叉生成的子体1和子体2为:
步骤E3:随机产生一个1到I-1的正整数α;随机产生一个小数λ∈[0,1),如果λ<0.5则转到步骤E4,否则转到步骤E5;
步骤E4:基于拓扑排序的任务调度顺序列表交叉操作:
步骤E4.1:chc1的任务调度顺序列表的前α个基因、虚拟机分配列表、虚拟机类型列表来自于父体1,即: chc1的任务调度顺序列表的后I-α个基因来自于父体2的任务调度顺序列表/>中删除父体1的任务调度顺序列表的前α个基因/>后的基因列表;
步骤E4.2:chc2的任务调度顺序列表的前α个基因、虚拟机分配列表、虚拟机类型列表来自于父体2,即: chc2的任务调度顺序列表的后I-α个基因来自于父体1的任务调度顺序列表/>中删除父体2的任务调度顺序列表的前α个基因/>后的基因列表;转到步骤E6;
步骤E5:进行虚拟机实例和类型的一体化交叉操作;
步骤E5.1:子体chc1的任务调度顺序列表,虚拟机分配列表的后I-α基因,虚拟机类型列表来自于chp1,即: 子体chc1的虚拟机分配列表的前α基因来自于chp2,即:1≤i≤α;
步骤E5.2:子体chc2的任务调度顺序列表,虚拟机分配列表的后I-α基因,虚拟机类型列表来自于chp2,即: 子体chc2的虚拟机分配列表的前α基因来自于chp1,即:
步骤E5.3:令虚拟机实例编号集对于所有的k∈SI1,在/>和/>中随机选择一个,不妨设为ε′k,令/>
步骤E5.4:令虚拟机实例编号集对于所有的k∈SI2,在/>和/>中随机选择一个,不妨设为ε″k,令/>
步骤E6:获得子体chc1和chc2,并把它们放到新子种群中;n=n+1,如果n≤N/2,那么转到步骤E2;否则新子种群生成完毕,输出新子种群,子种群交叉操作结束;
对每个新子种群,所述变异操作包括如下步骤:
步骤F1:令变量n=1;
步骤F2:对新子种群中的第n个个体,生成一个随机数λ1∈[0,1),如果λ1<pm1,则转到步骤F3,否则转到步骤F4;
步骤F3:进行任务调度顺序列表变异,即:从任务调度顺序列表中随机选择一个基因,不妨设为gri;如果任务gri存在父任务,则向前找到第一个父任务gri′,令位置值pos1=i′+1,否则令pos1=1;如果任务gri存在子任务,则向后找到第一个子任务gri″,令位置值pos2=i″-1,否则令pos2=I;在[pos1,pos2]之间重新随机选择一个位置插入gri
步骤F4:生成一个随机数λ2∈[0,1),如果λ2<pm2,则转到步骤F5,否则转到步骤F6;
步骤F5:进行虚拟机分配列表变异,即:从虚拟机分配列表中随机选择一个基因,不妨设为gsi,在1到I之间重新随机选择一个值,不妨设为k,令gsi=k;
步骤F6:生成一个随机数λ3∈[0,1),如果λ3<pm3,则转到步骤F7,否则转到步骤F8;
步骤F7:进行虚拟机类型列表变异,即:从虚拟机类型列表的有效范围内随机选择一个基因,不妨设为gti,i∈{gs1,…,gsI};为编号为i的实例重新随机选择一个虚拟机类型,不妨设为j,则gti=j,转到步骤F8;
步骤F8:令n=n+1,如果n≤N,转到步骤F2;否则,新子种群变异操作结束;
其中,pm1,pm2,pm3∈[0,1)分别是任务调度顺序列表、虚拟机分配列表和虚拟机类型列表的变异率;
步骤9:如果当代种群中存在可行个体,那么输出当代种群中绝对适应度值最小的个体,其对应的执行方案为优化方案,否则无可行执行方案。
进一步的,所述MBV和MDV的一种具体计算方法如下:
其中:为ti的最大执行时间。
进一步的,对于每个子种群中的每个个体chn,所述工作流响应时间rsn和执行成本ctn的具体计算方法如下:
其中:rfi是任务i的响应时间,
其中:是编号为k的虚拟机实例的固定起租成本,/>是编号为k的虚拟机实例的单位时间成本,/>是编号为k的虚拟机实例的最小计费时间单位,/>是编号为k的虚拟机实例的最小起租时间,/>是编号为k的虚拟机实例的带宽,ltk=Rntk-Hrtk是编号为k的虚拟机实例的租用时间,Hrtk为编号为k的虚拟机实例的开始租用时间;Rntk为编号为k的虚拟机实例的归还时间;/>tfi是完成OFLi中的文件输出给相应接收者的最大时刻,如果ti没有文件输出给共享数据库即/>那么相应接收者为处理ti的子任务的虚拟机,如果ti没有子任务即/>那么相应接收者为共享数据库,另外如果ti即有文件输出给共享数据库又有子任务即/>那么相应接收者为处理ti的子任务的虚拟机和共享数据库,
进一步的,对于每个子种群中的每个个体chn,n=1,2…,N,如果ctn≤Budget∧rsn≤Deadline,则chn为可行个体,否则chn为不可行个体;
不可行个体的相对适应度值的具体计算方法如下:
可行个体的绝对适应度值的具体计算方法如下:afitn=θ×μ×ctn+(1-θ)×rsn
其中:θ∈[0,1]是权重系数,μ>0是成本与时间的协调系数;
进行个体优劣比较时,可行个体优于不可行个体;对于都是可行个体,则绝对适应度值越小,个体越优;对于都是不可行个体,则相对适应度值越小,个体越优。
进一步的,所述步骤E2中基于排序的轮赌法从当代子种群中随机选择两个不同个体作为父体1和父体2的具体步骤如下:
步骤E2.1:对当子代种群中的个体从优到劣进行排序,获得个体n的排序值rkn,n=1,…,N,其中最优的其取1,次优的其取2,以此类推,最劣的其取N;
步骤E2.2:计算个体n被选中的概率n=1,…,N,R>1为区分度系数;
步骤E2.3:计算累计概率n=1,…,N;
步骤E2.4:产生一个随机数λ1∈[0,1),如果那么选择个体n作为父体1;
步骤E2.5:产生一个随机数λ2∈[0,1),如果并且n′≠n,那么选择个体n′作为父体2,转到步骤E2.6,否则转到步骤E2.5;
步骤E2.6:个体选择操作结束。
本发明的有益效果在于:
(1)相对于现有的云计算环境下的工作流调度优化方法,本发明同时考虑了资源配置或任务调度,实现了两者的集成协同优化。
(2)相对于启发式方法、结合启发式的半智能计算方法、及现有的基于分层编码的智能计算方法,本发明设计采用整数编码方法,任何一个调度方案都可以有一个个体与之对应,因此其搜索空间是完备的,可以实现全域搜索。
(3)相对于传统的单种群进化策略,本发明设计采用的多种群协同进化策略,能有效避免各子种群进入局部最优和早熟,并加速各子种群的收敛,从而能提高整个算法效率。
(4)相对于一般的基于优先级的编码方式,本发明的任务调度顺序采用了基于拓扑排序的整数编码方法,考虑了任务之间的时序关系,这样解码就比较简单,能有效提高解码的效率,进而提高算法的整体效率。
(5)相对于传统的非插入模式和并行的解码方法,本发明设计采用的基于插入模式的尽可能早地安排任务执行的串行个体解码方法通常能找到更好的对应调度方案。
(6)相对于普通的单向解码方法,本发明设计采用的向前向后个体解码与改进策略FBI&D增强了个体的邻域寻优能力,从而能提高整个算法的寻优能力和搜索效率。
(7)本发明采用由当代子种群和新子种群合并产生新的当代子种群的策略,可以保证最优个体被遗传到下一代,使算法单调收敛。
(8)相对于传统的随机初始化方法,本发明在初始化种群时采用了基于层次和效益比生成方法,使算法可以从满足层次编码的较优个体附近开始搜索,可以提高搜索效率,缩短搜索时间。
(9)面向云计算环境下工作流执行成本和响应时间的优化目标,本发明设计了一种新的个体适应度值计算及优劣比较方法,可以快速方便地实现个体之间的优劣比较。
(10)本发明设计了一种通用的虚拟机租用计费模型,该模型适用于Amazon EC2、Microsoft Azure、Google cloud、阿里云、腾讯云等所有IaaS平台的计费规则。
附图说明
图1是本发明一种云计算环境下基于多种群遗传算法的工作流执行优化方法的流程示意图。
图2是本发明实施例中Montage工作流任务间的时序关系图。
具体实施方式
下面结合图1、图2及实施例对本发明做进一步详细说明,但本发明并不仅限于以下的实施例。
假设云计算服务提供商即云计算环境下有编号为1至5的5种虚拟机类型vm1、vm2、vm3、vm4、vm5可供租用,各种虚拟机类型的计算能力、带宽、单位时间成本、固定起租成本、最小计费时间单位及最小起租时间如表1所示;一个Montage工作流任务间的时序关系如图2所示,由编号为1至15的15个任务t1、t2、…、t15组成,每个任务的执行长度,处理所需要的输入文件和处理后的输出文件的名称、长度如表2所示。
表1
表2
针对上述案例,如图2所示,一种云计算环境下基于多种群遗传算法的工作流执行优化方法,包括以下实施步骤:
执行步骤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},/>
获取任务的相关参数:len1=42×107MI,IFL1={fd1,fd2},OFL1={f1-1,f1-2};len2=36×107MI,IFL2={fd1,fd3},OFL2={f2-1,f2-2};len3=63×107MI,IFL3={fd1,fd4},OFL3={f3-1,f3-2};len4=46×107MI,IFL4={fd1,f1-1,f1-2},OFL4={f4-1,f4-2};……;len15=48×107MI,IFL15={f14-1},OFL15={f15-1};fd1.size=36000MB,fd2.size=43200MB,f1-1.size=39600MB,f1-2.size=39600MB,……,f14-1.size=356000MB,f15-1.size=42000MB;
获取云计算环境下的虚拟机类型集合:VM={vm1,vm2,vm3,vm4,vm5};
获取虚拟机相关参数:ps1=10000MI/s,bw1=200Mbit/s,vc1=0.5元,fc1=3元,ut1=600s,ft1=7200s;ps2=20000MI/s,bw2=200Mbit/s,vc2=0.8元,fc2=4元,ut2=600s,ft2=7200s;ps3=40000MI/s,bw3=300Mbit/s,vc3=1.4元,fc3=6元,ut3=600s,ft3=7200s;ps4=40000MI/s,bw4=400Mbit/s,vc4=1.7元,fc4=7元,ut4=600s,ft4=7200s;ps5=60000MI/s,bw5=400Mbit/s,vc5=2.1元,fc5=8元,ut5=600s,ft5=7200s;
获取云计算环境下工作流执行的成本约束Budget=1000元、时间约束Deadline=130000s;
执行步骤2:计算任务的层次值;
任务1、任务2和任务3均没有父任务,则lvl1=lvl2=lvl3=1;
任务4只有一个父任务1,则同理,可以获取其它任务的层次值:lvl5=lvl6=2;lvl7=3;lvl8=4;lvl9=lvl10=lvl11=5;lvl12=6;lvl13=7;lvl14=8;lvl15=9。
执行步骤3:初始化当代种群;
取子种群数量S=3,子种群规模N=6;取权重系数θ=0.4,成本与时间的协调系数μ=250;
对每个当代子种群采用基于层次和效益比的个体随机生成方法生成6个不同的个体;
基于层次和效益比的个体随机生成方法生成1个个体的具体实施过程如下:
执行步骤A1:根据任务层次值从小到大随机排列任务,将层次值为1的任务随机排列,其为2、3、1;将层次值为2的任务随机排列,其为6、5、4;层次值3的任务只有7;层次值为4的任务只有8;将层次值为5的任务随机排列,其为10、11、9;层次值6的任务只有12;层次值7的任务只有13;层次值8的任务只有14;层次值9的任务只有15;根据层次值,将层次值小的排在大的前面依次连接,形成个体的任务调度顺序列表{2,3,1,6,5,4,7,8,10,11,9,12,13,14,15};
执行步骤A2:随机生成15个1到5之间的整数:1,2,3,4,4,1,1,3,3,2,5,2,3,5,1;令gt1=1、gt2=2、gt3=3、…、gt15=1,形成个体的虚拟机类型列表{1,2,3,4,4,1,1,3,3,2,5,2,3,5,1};
执行步骤A3:基于效益比生成个体的虚拟机分配列表;获得所有任务的开始时间si和结束时间fi,i=1,…,15;
即执行步骤A3.1:令已分配任务的虚拟机实例集所有任务的就绪时间:rt1=rt2=…=rt15=0;所有虚拟机实例的可得时间段列表vatl1={[0,∞]},vatl2={[0,∞]},…,vatl15={[0,∞]};δ=1;
执行步骤A3.2:i=grδ=gr1=2,k=1;计算把t2分别分配给的每个潜在虚拟机实例后的综合效益比:即执行步骤A3.2.1:计算t2分配给编号为k=1的虚拟机实例后的执行时间执行步骤A3.2.2:在vatl1中从早到晚找出一个空闲时段[0,∞],满足∞-0≥et2,1=39168和∞-39168≥rt2=0;执行步骤A3.2.3:计算t2分配给编号为1的虚拟机实例后的开始时间s2,1=max{ν1,rt2}=max{0,0}=0,完成时间f2,1=s2,1+et2,1=39168;执行步骤A3.2.4:计算综合效益比:由于/>那么
其中执行步骤A3.2.5:k=1+1=2,由于k=2≤I=15,转到步骤A3.2.1;执行步骤A3.2.1:计算t2分配给编号为k=2的虚拟机实例后的执行时间/>执行步骤A3.2.2:在vatl2中从早到晚找出一个空闲时段[0,∞],满足∞-0≥et2,2=21168和∞-21168≥rt2=0;执行步骤A3.2.3:计算t2分配给编号为2的虚拟机实例后的开始时间s2,2=max{ν2,rt2}=max{0,0}=0,完成时间f2,2=s2,2+et2,2=21168;执行步骤A3.2.4:计算综合效益比ξ2,2=18339.2;执行步骤A3.2.5:k=2+1=3,由于k=3≤I=15,转到步骤A3.2.1;……;这样不断重复执行步骤A3.2.1至步骤A3.2.5,直到k=16>I=15,得到综合效益比分别为:ξ2,1=29309.2,ξ2,2=18339.2,ξ2,3=11792.8,ξ2,4=11599.6,ξ2,5=11599.6,ξ2,6=29309.2,ξ2,7=29309.2,ξ2,8=11792.8,ξ2,9=11792.8,ξ2,10=18339.2,ξ2,11=9689.6,ξ2,12=18339.2,ξ2,13=11792.8,ξ2,14=9689.6,ξ2,15=29309.2;
执行步骤A3.3:按顺序从ξ2,1,…,ξ2,15中找出一个最小的,其为ξ2,11=9689.6;由于编号为11的虚拟机实例则INS=INS∪ins11={ins11};
执行步骤A3.4:把任务2分配给虚拟机实例11,gs2=11:即执行步骤A3.4.1:计算任务的开始时间s2=s2,11=0,结束时间f2=f2,11=7584;其执行时间et2,11=7584;执行步骤A3.4.2:更新任务2的子任务的就绪时间rt5=max{rt5,f2}=max{0,7584}=7584,rt10=max{rt10,f2}=7584;执行步骤A3.4.3:在vatl11中从早到晚找出一个空闲时段[0,∞],满足∞-0≥et2,11=7584和∞-7584≥rt2=0;执行步骤A3.4.4:在vatl11中删除[0,∞],插入区间长度大于0的[7584,∞];
执行步骤A3.5:δ=1+1=2;由于δ=2≤I=15,那么转到步骤A3.2;
执行步骤A3.2:i=gr2=3,k=1;计算把t3分别分配给的每个潜在虚拟机实例后的综合效益比:即执行步骤A3.2.1:计算t3分配给编号为1的虚拟机实例后的执行时间执行步骤A3.2.2:在vatl1中从早到晚找出一个空闲时段[0,∞],满足∞-0≥et3,1=66168和∞-66168≥rt3=0;执行步骤A3.2.3:计算t3分配给编号为1的虚拟机实例后的开始时间s3,1=max{ν1,rt3}=max{0,0}=0,完成时间f3,1=s3,1+et3,1=66168;执行步骤A3.2.4:计算综合效益比ξ3,1=47644;执行步骤A3.2.5:k=1+1=2,由于k=2≤I=15,转到步骤A3.2.1;……;这样不断重复步骤A3.2.1至步骤A3.2.5,直到k=11;执行步骤A3.2.1:计算t3分配给编号为11的虚拟机实例后的执行时间/>执行步骤A3.2.2:在vatl11中从早到晚找出一个空闲时段[7584,∞],满足∞-7584≥et3,11=12084和∞-12084≥rt3=0;执行步骤A3.2.3:计算t3分配给编号为11的虚拟机实例后的开始时间s3,11=max{ν11,rt3}=max{7584,0}=7584,完成时间f3,11=s3,11+et3,11=7584+12084=19668;执行步骤A3.2.4:计算综合效益比:由于ins11∈INS,故:/>Hrt′11=min{s2}=0;lt′11=Rnt′11-Hrt′11=9216,
执行步骤A3.2.5:k=11+1=12,由于k=12≤I=15,转到步骤A3.2.1;……;这样不断重复步骤A3.2.1至步骤A3.2.5,直到k=16>I=15,得到综合效益比分别为:ξ3,1=47644,ξ3,2=28084,ξ3,3=17306,ξ3,4=17462,ξ3,5=17462,ξ3,6=47644,ξ3,7=47644,ξ3,8=17306,ξ3,9=17306,ξ3,10=28084,ξ3,11=16922.4,ξ3,12=28084,ξ3,13=17306,ξ3,14=13802,ξ3,15=47644;
执行步骤A3.3:按顺序从ξ3,1,…,ξ3,15中找出一个最小的,其为ξ3,14=13802;由于编号为14的虚拟机实例则INS=INS∪ins14={ins11,ins14};
执行步骤A3.4:把任务3分配给虚拟机实例14,gs3=14:即执行步骤A3.4.1:计算任务的开始时间s3=s3,14=0,结束时间f3=f3,14=12084;其执行时间et3,14=12084;执行步骤A3.4.2:更新任务3的子任务的就绪时间rt6=max{rt6,f3}=12084,rt11=12084;执行步骤A3.4.3:在vatl14中从早到晚找出一个空闲时段[0,∞],满足∞-0≥et3,14=12084和∞-12084≥rt3=0;执行步骤A3.4.4:在vatl14中删除[0,∞],插入区间长度大于0的[12084,∞];
执行步骤A3.5:δ=2+1=3;由于δ=3≤I=15,那么转到步骤A3.2;
……
这样不断重复执行步骤A3.2至步骤A3.5,直到δ=16>I=15,转到步骤A3.6;
执行步骤A3.6:获得虚拟机分配列表{4,11,14,11,11,14,11,11,5,11,11,11,11,11,11};
执行步骤A4:输出一个个体
ch1,1={2,3,1,6,5,4,7,8,10,11,9,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1},操作结束;
同理,基于层次和效益比的个体随机生成方法生成子种群1的其它个体如下:
ch1,2={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch1,3={2,3,1,5,6,4,7,8,9,10,11,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}
ch1,4={1,2,3,4,6,5,7,8,10,9,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,5={1,3,2,6,4,5,7,8,11,9,10,12,13,14,15;2,9,7,2,9,7,9,9,15,15,9,15,15,15,15;1,5,3,1,4,3,5,4,5,3,3,1,4,4,5}
ch1,6={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;12,8,10,8,12,10,12,12,12,9,9,12,12,12,12;2,1,1,1,2,2,2,5,4,5,4,5,2,4,1}
这样最终生成的初始当代子种群1为CP1={ch1,1,ch1,2,ch1,3,ch1,4,ch1,5,ch1,6};
同理,生成其它子种群的个体如下:
ch2,1={3,2,1,5,4,6,7,8,11,10,9,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch2,2={1,2,3,6,5,4,7,8,10,11,9,12,13,14,15;1,4,11,4,1,11,1,1,15,1,15,15,15,15,15;5,4,2,5,3,1,1,2,1,1,5,4,4,2,5}
ch2,3={3,1,2,5,4,6,7,8,9,10,11,12,13,14,15;10,11,3,11,10,3,10,10,10,14,14,14,14,14,14;1,4,5,1,4,2,1,4,3,5,5,3,3,5,5}
ch2,4={2,1,3,6,4,5,7,8,10,9,11,12,13,14,15;14,13,13,14,3,13,3,3,4,3,4,4,4,4,4;3,2,4,4,2,2,3,3,3,3,4,3,5,5,3}
ch2,5={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,6={2,1,3,5,4,6,7,8,9,11,10,12,13,14,15;7,1,1,3,7,1,7,7,7,14,14,7,7,7,7;5,2,3,3,2,1,4,3,1,1,3,3,3,4,2}
CP2={ch2,1,ch2,2,ch2,3,ch2,4,ch2,5,ch2,6};
ch3,1={2,3,1,4,6,5,7,8,10,9,11,12,13,14,15;13,2,2,13,3,2,3,3,4,3,4,4,4,4,4;1,5,3,3,1,2,2,2,1,2,2,3,4,3,2}
ch3,2={3,1,2,4,6,5,7,8,9,10,11,12,13,14,15;13,3,7,13,3,7,3,3,3,10,10,3,3,3,3;3,2,4,3,1,1,5,2,3,4,3,2,5,3,4}
ch3,3={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,4={1,2,3,6,5,4,7,8,9,10,11,12,13,14,15;1,2,3,2,1,3,1,1,1,4,4,4,4,4,4;4,4,3,4,1,4,4,1,2,4,3,1,4,1,3}
ch3,5={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;10,8,1,8,10,1,10,10,12,10,12,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,5,2,4,1}
ch3,6={1,3,2,4,5,6,7,8,9,10,11,12,13,14,15;4,8,6,4,8,6,8,8,8,9,9,9,9,9,9;4,2,3,5,4,5,1,5,5,2,5,5,3,4,4}
CP3={ch3,1,ch3,2,ch3,3,ch3,4,ch3,5,ch3,6};
最终生成的初始当代种群为CP={CP1,CP2,CP3}。
执行步骤4:对当代种群中的所有个体采用FBI&D进行解码与改进,获得所有个体的工作流响应时间和执行成本,然后计算所有不可行个体的相对适应度值和可行个体的绝对适应度值;
对当代种群中的所有个体采用FBI&D方法改进,例如对当代子种群1中的个体ch1,3={2,3,1,5,6,4,7,8,9,10,11,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}采用FBI&D方法改进的具体实施过程如下:
执行步骤B1:令工作流反向响应时间
执行步骤B2:采用基于插入模式的串行个体解码方法对个体ch1,3进行解码,获得所有任务的完成时间:f1=23724,f2=11112,f3=17862,f4=54218,f5=37384,f6=39646,f7=77578,f8=93358,f9=113708,f10=121708,f11=104198,f12=153861.33,f13=166821.33,f14=184321.33,f15=196321.33;及其工作流响应时间rs1,3=197441.33;由于则转到步骤B3;
执行步骤B3:把个体ch1,3中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把ch1,3中的基因gri设置为倒数第i个完成的任务,i=1,…,15,形成反向个体
执行步骤B4:采用基于插入模式的串行反向个体解码方法对反向个体进行解码,获得所有任务反向完成时间:/> 其工作流反向响应时间/>由于/>小于rs1,3=197441.33,则转到步骤B5,否则,转到步骤B6;
执行步骤B5:把反向个体中的任务调度顺序列表根据任务反向完成时间/>从大到小重新排列,即把/>中的基因gri设置为倒数第i个完成的任务,i=1,…,15,形成个体ch1,3={3,1,6,2,4,5,7,8,9,11,10,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2},转到步骤B2;
执行步骤B2:采用基于插入模式的串行个体解码方法对个体ch1,3进行解码,获得所有任务的完成时间:f1=12612,f2=23724,f3=17862,f4=48356,f5=37384,f6=33784,f7=71716,f8=87496,f9=107846,f10=115846,f11=98336,f12=147999.33,f13=160959.33,f14=178459.33,f15=190459.33;及其工作流响应时间rs1,3=191579.33;由于rs1,3=191579.33等于则转到步骤B6;
执行步骤B6:输出个体
ch1,3={3,1,6,2,4,5,7,8,9,11,10,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}及其工作流响应时间rs1,3=191579.33,并计算其工作流执行成本:由于f1=12612,f2=23724,f3=17862,f4=48356,f5=37384,f6=33784,f7=71716,f8=87496,f9=107846,f10=115846,f11=98336,f12=147999.33,f13=160959.33,f14=178459.33,f15=190459.33;s1=0,s2=12612,s3=0,s4=33784,s5=23724,s6=17862,s7=48356,s8=71716,s9=87496,s10=107846,s11=87496,s12=115846,s13=147999.33,s14=160959.33,s15=178459.33; 故/>同理,tf2=107846,tf3=88136,tf4=55396,tf5=55396,tf6=55396,tf7=71716,tf8=88136,tf9=125019.33,tf10=125019.33,tf11=125019.33,tf12=147999.33,tf13=160959.33,tf14=178459.33;由于故/>Rnt7=max{tf1,tf2,tf5,tf7,tf8,tf9,tf10,tf12,tf13,tf14,tf15}=max{87496,...,191579.33}=197579.33,Hrt7=min{s1,s2,s5,s7,s8,s9,s10,s12,s13,s14,s15}=min{0,...,160959.33}=0,lt7=Rnt7-Hrt7=191579.33;同理,lt12=Rnt12-Hrt12=125019.33;
操作结束;
其中,以上述个体
ch1,3={2,3,1,5,6,4,7,8,9,10,11,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}解码为例,基于插入模式的串行个体解码方法的具体实施过程如下:
执行步骤C1:令所有任务的就绪时间:rt1=0,rt2=0,…,rt15=0;δ=1;令所有虚拟机实例的可得时间段列表:vatl7={[0,∞]},vatl12={[0,∞]};
执行步骤C2:选取编号为i=grδ=gr1=2的任务;
执行步骤C3:基于插入模式把任务2分配给编号为k=gs2=7的虚拟机实例;即执行步骤C3.1:计算任务2的执行时间执行步骤C3.2:在vatl7中从早到晚找出一个空闲时段[0,∞],满足∞-0≥et2=11112和∞-11112≥rt2=0;执行步骤C3.3:计算任务2的开始时间s2=max{ν7,rt2}=max{0,0}=0,完成时间f2=s2+et2=11112;执行步骤C3.4:更新任务2的子任务的就绪时间rt5=max{rt5,f2}=max{0,11112}=11112,rt10=11112;执行步骤C3.5:在虚拟机可得时间段列表vatl7中删除[0,∞],插入区间长度大于0的[11112,∞];
执行步骤C4:δ=1+1=2,由于δ=2≤I=15,则转到步骤C2;
执行步骤C2:选取编号为i=gr1=3的任务;
执行步骤C3:基于插入模式把任务3分配给编号为k=gs3=12的虚拟机实例;即执行步骤C3.1:计算任务3的执行时间执行步骤C3.2:在vatl12中从早到晚找出一个空闲时段[0,∞],满足∞-0≥et3=17862和∞-17862≥rt3=0;执行步骤C3.3:计算任务3的开始时间s3=max{ν12,rt3}=0,完成时间f3=s3+et3=17862;执行步骤C3.4:更新任务3的子任务的就绪时间rt6=max{rt6,f3}=max{0,17862}=17862,rt10=17862;执行步骤C3.5:在虚拟机可得时间段列表vatl12中删除[0,∞],插入区间长度大于0的[17862,∞];
执行步骤C4:δ=2+1=3,由于δ=3≤I=15,则转到步骤C2;
……
这样不断重复执行步骤C2至步骤C4,直到δ=16>I=15,转到步骤C5;
执行步骤C5:获得任务的开始时间和结束时间:s1=11112,s2=0.00,s3=0.00,s4=39646,s5=23724,s6=23724,s7=54218,s8=77578,s9=93358,s10=113708,s11=93358,s12=121708,s13=153861.33,s14=166821.33,s15=184321.33;f1=23724,f2=11112,f3=17862,f4=54218,f5=37384,f6=39646,f7=77578,f8=93358,f9=113708,f10=121708,f11=104198,f12=153861.33,f13=166821.33,f14=184321.33,f15=196321.33;计算工作流响应时间rs1,3:由于而SFL15={f15-1},故操作结束;
其中,以上述个体
解码为例,基于插入模式的串行反向个体解码方法的具体实施过程如下:
执行步骤D1:由于而SFL15={f15-1},故令任务的反向就绪时间:/>δ=1;令虚拟机可得时间段列表:vatl7={[0,∞]},vatl12={[0,∞]};
执行步骤D2:选取编号为i=gr1=15的任务;
执行步骤D3:基于插入模式把任务15分配给编号为k=gs15=7的虚拟机实例:执行步骤D3.1:计算任务15的执行时间执行步骤D3.2:在vatl7中从早到晚找出一个空闲时段[0,∞],满足∞-0≥et15=12000和/>执行步骤D3.3:计算任务15的反向开始时间/>反向完成时间执行步骤D3.4:更新任务15的父任务的反向就绪时间执行步骤D3.5:在虚拟机可得时间段列表vatl7中删除[0,∞],插入区间长度大于0的[0,1120]和[13120,∞];
执行步骤D4:δ=1+1=2,由于δ=2≤I=15,则转到步骤D2;
执行步骤D2:选取编号为i=gr2=14的任务;
执行步骤D3:基于插入模式把任务14分配给编号为k=gs14=7的虚拟机实例:执行步骤D3.1:计算任务14的执行时间et14=17500;执行步骤D3.2:在vatl7中从早到晚找出一个空闲时段[13120,∞],满足∞-13120≥et14=17500和执行步骤D3.3:计算任务14的反向开始时间/>反向完成时间执行步骤D3.4:更新任务14的父任务的反向就绪时间/>执行步骤D3.5:在虚拟机可得时间段列表vatl7中删除[13120,∞],插入区间长度大于0的[30620,∞];
执行步骤D4:δ=2+1=3,由于δ=3≤I=15,则转到步骤D2;
……
这样不断重复执行步骤D2至步骤D4,直到δ=16>I=15,步骤D5,
执行步骤D5:获得任务的反向开始时间: 和反向完成时间:/> 及工作流反向响应时间/>操作结束;
种群1中的个体经FBI&D方法改进后变为:
ch1,1={2,3,1,6,5,4,7,8,10,11,9,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}
ch1,2={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch1,3={3,1,6,2,4,5,7,8,9,11,10,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}
ch1,4={1,2,3,4,6,5,7,8,10,9,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,5={1,3,2,6,4,5,7,8,11,9,10,12,13,14,15;2,9,7,2,9,7,9,9,15,15,9,15,15,15,15;1,5,3,1,4,3,5,4,5,3,3,1,4,4,5}
ch1,6={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;12,8,10,8,12,10,12,12,12,9,9,12,12,12,12;2,1,1,1,2,2,2,5,4,5,4,5,2,4,1}
其工作流响应时间分别为:rs1,1=134946,rs1,2=124377.33,rs1,3=191579.33,
rs1,4=121785.33,rs1,5=124377.33,rs1,6=129309.33;
其工作流执行成本分别为:ct1,1=994.90,ct1,2=937.10,ct1,3=752.60,ct1,4=917.70,ct1,5=937.10,ct1,6=992.30;
计算当代子种群1中所有不可行个体的相对适应度值及可行个体的绝对适应度值:
由于成本约束Budget=1000,时间约束Deadline=130000;故ch1,1、ch1,3为不可行个体,而ch1,2、ch1,4、ch1,5、ch1,6为可行个体;
对于不可行个体ch1,1、ch1,3的相对适应度值为:
对于可行个体ch1,2、ch1,4、ch1,5、ch1,6的绝对适应度值为:
afit1,2=0.4×250×937.10+0.6×124377.33=168336.4,afit1,4=164841.2,afit1,5=168336.4,afit1,6=176815.6;
同理,当代子种群2中的所有个体经FBI&D方法改进后变为:
ch2,1={3,2,1,5,4,6,7,8,11,10,9,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch2,2={1,2,3,6,5,4,7,8,10,11,9,12,13,14,15;1,4,11,4,1,11,1,1,15,1,15,15,15,15,15;5,4,2,5,3,1,1,2,1,1,5,4,4,2,5}
ch2,3={3,1,2,5,4,6,7,8,9,10,11,12,13,14,15;10,11,3,11,10,3,10,10,10,14,14,14,14,14,14;1,4,5,1,4,2,1,4,3,5,5,3,3,5,5}
ch2,4={2,1,3,6,4,5,7,8,10,9,11,12,13,14,15;14,13,13,14,3,13,3,3,4,3,4,4,4,4,4;3,2,4,4,2,2,3,3,3,3,4,3,5,5,3}
ch2,5={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,6={2,1,3,5,4,6,7,8,9,11,10,12,13,14,15;7,1,1,3,7,1,7,7,7,14,14,7,7,7,7;5,2,3,3,2,1,4,3,1,1,3,3,3,4,2}
其工作流响应时间分别为:rs2,1=124377.33,rs2,2=124548,rs2,3=120122.67,rs2,4=173548.67,rs2,5=120122.67,rs2,6=168526.67;
其工作流执行成本分别为:ct2,1=937.1,ct2,2=939.2,ct2,3=935,ct2,4=1180.1,ct2,5=907.7,ct2,6=953.2;
其不可行个体的相对适应度值分别为:rfit2,4=2.52,rfit2,6=2.25;
其可行个体绝对适应度值分别为:afit2,1=168336.4,afit2,2=168648.8,afit2,3=165573.6,afit2,5=162843.6;
当代子种群3中的所有个体经FBI&D方法改进后变为:
ch3,1={2,3,1,4,6,5,7,8,10,9,11,12,13,14,15;13,2,2,13,3,2,3,3,4,3,4,4,4,4,4;1,5,3,3,1,2,2,2,1,2,2,3,4,3,2}
ch3,2={3,1,2,4,6,5,7,8,9,10,11,12,13,14,15;13,3,7,13,3,7,3,3,3,10,10,3,3,3,3;3,2,4,3,1,1,5,2,3,4,3,2,5,3,4}
ch3,3={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,4={1,2,3,6,5,4,7,8,9,10,11,12,13,14,15;1,2,3,2,1,3,1,1,1,4,4,4,4,4,4;4,4,3,4,1,4,4,1,2,4,3,1,4,1,3}
ch3,5={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;10,8,1,8,10,1,10,10,12,10,12,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,5,2,4,1}
ch3,6={1,3,2,4,5,6,7,8,9,10,11,12,13,14,15;4,8,6,4,8,6,8,8,8,9,9,9,9,9,9;4,2,3,5,4,5,1,5,5,2,5,5,3,4,4}
其工作流响应时间分别为:rs3,1=179802,rs3,2=163176,rs3,3=120122.67,rs3,4=170124,rs3,5=124548,rs3,6=120122.67;
其工作流执行成本分别为:ct3,1=1062.9,ct3,2=1079.9,ct3,3=907.7,ct3,4=1012.9,ct3,5=939.2,ct3,6=932.9;
其不可行个体的相对适应度值分别为:rfit3,1=2.45,rfit3,2=2.34,rfit3,4=2.32;
其可行个体绝对适应度值分别为:afit3.3=162843.6,afit3.5=168648.8,afit3.6=165363.6;执行步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤9,否则转到步骤6;
终止条件设为迭代TG=50代;
在上述种群是初始化后改进的种群,迭代进化了1代,不满足终止条件,因此转到步骤6。
执行步骤6:判断是否满足进行子种群间交流的条件;如果满足则转到步骤7,否则转到步骤8;
子种群间需要进行交流的条件设为EFG=10,即每迭代10代进行1次子种群间的交流;当前种群只进化了0代,不满足子种群间进行交流的条件,因此转到步骤8。
执行步骤8:子种群进行独立进化;
执行步骤8.1:对每个当代子种群进行交叉操作形成新子种群;
对当代子种群CP1进行交叉操作的具体实施过程如下:
执行步骤E1:令n=1,新子种群为空;
执行步骤E2:采用基于排序的轮赌法从当代子种群中随机选择两个不同个体作为父体1和父体2,即执行步骤E2.1:对当代子种群中的个体从优到劣进行排序,获得个体的排序值:rk1=5,rk2=2,rk3=6,rk4=1,rk5=3,rk6=4;执行步骤E2.2:令R=1+1/N=1.167,计算个体ch1,1被选中的概率同理A2=0.203,A3=0.109,A4=0.237,A5=0.174,A6=0.149;执行步骤E2.3:计算累计概率/> 执行步骤E2.4:产生一个随机数λ1=0.426,由于那么选择个体3作为父体1;执行步骤E2.5:产生一个随机数λ2=0.054,由于/>并且1≠3,那么选择个体1作为父体2,转到步骤E2.6;执行步骤E2.6:个体选择操作结束;即
chp1={3,1,6,2,4,5,7,8,9,11,10,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2},
chp2={2,3,1,6,5,4,7,8,10,11,9,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1};
执行步骤E3:随机产生一个1到14的正整数,其为8;随机产生一个小数,其为0.47,由于0.47<0.5,故转到步骤E4;
执行步骤E4:基于拓扑排序的任务调度顺序列表交叉操作;即执行步骤E4.1:chc1的任务调度顺序列表的前8个基因、虚拟机分配列表、虚拟机类型列表来自于父体1,即:
chc1的任务调度顺序列表的后7个基因来自于父体2的任务调度顺序列表{2,3,1,6,5,4,7,8,10,11,9,12,13,14,15}中删除父体1的任务调度顺序列表的前8个基因3,1,6,2,4,5,7,8后的基因列表,即10,11,9,12,13,14,15;执行步骤E4.2:chc2的任务调度顺序列表的前8个基因、虚拟机分配列表、虚拟机类型列表来自于父体2,即:/> chc2的任务调度顺序列表的后7个基因来自于父体1的任务调度顺序列表{3,1,6,2,4,5,7,8,9,11,10,12,13,14,15}中删除父体2的任务调度顺序列表的前8个基因2,3,1,6,5,4,7,8后的基因列表,即9,11,10,12,13,14,15;转到步骤E6;
执行步骤E6:获得子体
chc1={3,1,6,2,4,5,7,8,10,11,9,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}和
chc2={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1},并把它们放到新子种群中,则ch1′,1=chc1,ch1′,2=chc2;n=1+1=2,由于n=2≤N/2=3,故转到步骤E2;
执行步骤E2:采用基于排序的轮赌法从当代子种群中随机选择两个不同个体作为父体1和父体2,其为ch1,2和ch1,6;则
chp1={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3},
执行步骤E3:随机产生一个1到14的正整数,其为12;随机产生一个小数,其为0.56,由于0.56>0.5,故转到步骤E5;
执行步骤E5:进行虚拟机实例和类型的一体化交叉操作;即执行步骤E5.1:子体chc1的任务调度顺序列表,虚拟机分配列表的后3基因,虚拟机类型列表来自于chp1,即:
子体chc1的虚拟机分配列表的前12基因来自于chp2,即:/>执行步骤E5.2:子体chc2的任务调度顺序列表,虚拟机分配列表的后3基因,虚拟机类型列表来自于chp2,即:
子体chc2的虚拟机分配列表的前12基因来自于chp1,即:/>执行步骤E5.3:令对于k=12,在/>和/>中随机选择一个,其为5,故/>执行步骤E5.4:令/>对于k=12,在/>和/>中随机选择一个,其为5,故/>
步骤E6:获得子体
chc1={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;12,8,10,8,12,10,12,12,12,9,9,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}和
chc2={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;2,1,1,1,2,2,2,5,4,5,4,5,2,4,1},
并把它们放到新子种群中,则ch′1,3=chc1,ch′1,4=chc2;n=2+1=3,由于n=3≤N/2=3,那么转到步骤E2;
……
这样不断重复执行步骤E2至步骤E6,直到n=4>N/2=3,新子种群生成完毕,输出新子种群,子种群交叉操作结束;
经过交叉操作后的新子种群1中个体为:
ch′1,1={3,1,6,2,4,5,7,8,10,11,9,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}
ch′1,2={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}
ch′1,3={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;12,8,10,8,12,10,12,12,12,9,9,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch′1,4={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;2,1,1,1,2,2,2,5,4,5,4,5,2,4,1}
ch′1,5={1,3,2,5,4,6,7,8,10,11,9,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch′1,6={2,3,1,6,5,4,7,8,11,10,9,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}
这样生成的新子种群1为NP1={ch′1,1,ch′1,2,ch′1,3,ch′1,4,ch′1,5,ch′1,6};
同样地,经交叉操作生成新子种群2中的个体如下:
ch′2,1={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch′2,2={3,1,2,4,6,5,7,8,9,11,10,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch′2,3={2,1,3,5,4,6,7,8,9,11,10,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,7,7,7,7;5,2,3,3,2,1,4,3,1,1,3,3,3,4,2}
ch′2,4={3,2,1,5,4,6,7,8,11,10,9,12,13,14,15;7,1,1,3,7,1,7,7,7,14,14,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch′2,5={2,1,3,5,4,6,7,8,9,11,10,12,13,14,15;14,13,13,14,3,13,3,3,4,3,4,4,4,4,4;3,2,4,4,2,2,3,3,3,3,4,3,5,5,3}
ch′2,6={2,1,3,6,4,5,7,8,10,9,11,12,13,14,15;7,1,1,3,7,1,7,7,7,14,14,7,7,7,7;5,2,3,3,2,1,4,3,1,1,3,3,3,4,2}
NP2={ch′2,1,ch′2,2,ch′2,3,ch′2,4,ch′2,5,ch′2,6};
同样地,经交叉操作生成新子种群3中的个体如下:
ch′3,1={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,5,2,4,1}
ch′3,2={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;10,8,1,8,10,1,10,10,12,10,12,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch′3,3={3,1,2,4,6,5,7,8,9,10,11,12,13,14,15;10,8,1,8,10,1,10,10,12,10,10,3,3,3,3;3,2,4,3,1,1,5,2,3,4,3,2,5,3,4}
ch′3,4={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;13,3,7,13,3,7,3,3,3,10,12,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,5,2,4,1}
ch′3,5={2,3,1,4,6,5,7,8,9,11,10,12,13,14,15;13,2,2,13,3,2,3,3,4,3,4,4,4,4,4;1,5,3,3,1,2,2,2,1,2,2,3,4,3,2}
ch′3,6={3,1,2,4,5,6,7,8,10,9,11,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
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:对每个新子种群进行变异操作;
取pm1=0.2,pm2=0.2,pm3=0.2;
对新子种群1进行变异操作的具体实施过程如下:
执行步骤F1:令n=1;
执行步骤F2:对新子种群1中的第1个个体
ch′1,1={3,1,6,2,4,5,7,8,10,11,9,12,13,14,15;7,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}生成一个随机数,其为λ1=0.36,由于λ1>pm1=0.2,故转到步骤F4;
执行步骤F4:生成一个随机数,其为λ2=0.01,由于λ2=0.01<pm2=0.2,故转到步骤F5;
执行步骤F5:进行虚拟机分配列表变异,即:从虚拟机分配列表中随机选择一个基因,其为gs1,在1到15之间重新随机选择一个值,其为10,令gs1=10;
执行步骤F6:生成一个随机数,其为λ3=0.69,由于λ3=0.69>pm3=0.2,故转到步骤F8;
执行步骤F8:n=1+1=2,由于n=2≤N=6,故转到步骤F2;
执行步骤F2:对新子种群1中的第2个个体
ch′1,2={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}生成一个随机数,其为λ1=0.24,由于λ1=0.24>pm1=0.2,故转到步骤F4;
执行步骤F4:生成一个随机数,其为λ2=0.28,由于λ2=0.28>pm2=0.2,故转到步骤F6;
执行步骤F6:生成一个随机数,其为λ3=0.55,由于λ3=0.55>pm3=0.2,故转到步骤F8;
执行步骤F8:n=2+1=3,由于n=3≤N=6,故转到步骤F2;
执行步骤F2:对新子种群1中的第3个个体,
ch′1,3={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;12,8,10,8,12,10,12,12,12,9,9,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}生成一个随机数,其为λ1=0.26,由于λ1=0.26>pm1=0.2,故转到步骤F4;
执行步骤F4:生成一个随机数,其为λ2=0.04,由于λ2=0.04<pm2=0.2,故转到步骤F5;
执行步骤F5:进行虚拟机分配列表变异,即:从虚拟机分配列表中随机选择一个基因,其为gs14,在1到15之间重新随机选择一个值,其为14,令gs14=14;
执行步骤F6:生成一个随机数,其为λ3=0.63,由于λ3=0.63>pm3=0.2,故转到步骤F8;
执行步骤F8:n=3+1=4,由于n=4≤N=6,转到步骤F2;
执行步骤F2:对新子种群1中的第4个个体
ch′1,4={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;2,1,1,1,2,2,2,5,4,5,4,5,2,4,1}生成一个随机数,其为λ1=0.82,由于λ1=0.82>pm1=0.2,故转到步骤F4;
执行步骤F4:生成一个随机数,其为λ2=0.52,由于λ2=0.52>pm2=0.2,故转到步骤F6;
执行步骤F6:生成一个随机数,其为λ3=0.14,由于λ3=0.14<pm3=0.2,故转到步骤F7;
执行步骤F7:进行虚拟机类型列表变异,即:从虚拟机类型列表的有效范围{gt2,gt4,gt7,gt12}内随机选择一个基因,其为gt12;为编号为12的虚拟机实例重新随机选择一个虚拟机类型,其为1,则gt12=1,转到步骤F8;
执行步骤F8:n=4+1=5,由于n=5≤N=6,转到步骤F2;
……,这样不断执行直到n=6;
执行步骤F2:对新子种群1中的第6个个体
ch′1,6={2,3,1,6,5,4,7,8,11,10,9,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}生成一个随机数,其为λ1=0.01,由于λ1=0.01<pm1=0.2,故转到步骤F3;
执行步骤F3:进行任务调度顺序列表变异,即:从任务调度顺序列表中随机选择一个基因,其为gr9=11;由于任务11存在父任务,故向前找到第一个父任务gr8=8,pos1=8+1=9;由于任务11存在子任务,故向后找到第一个子任务gr12=12,pos2=12-1=11,在[9,11]之间重新随机选择一个位置插入,其为gr10=11;
执行步骤F4:生成一个随机数,其为λ2=0.04,由于λ2=0.04<pm2=0.2,则转到步骤F5;
执行步骤F5:进行虚拟机分配列表变异,即:从虚拟机分配列表中随机选择一个基因,其为gs8=11,在1到15之间重新随机选择一个值,其为15,令gs8=15;
执行步骤F6:生成一个随机数,其为λ3=0.21,由于λ3=0.21>pm3=0.2,故转到步骤F8;
执行步骤F8:n=6+1=7,由于n=7>N=6,故新子种群变异操作结束;
经过变异操作后新子种群1中的个体变为:
ch′1,1={3,1,6,2,4,5,7,8,10,11,9,12,13,14,15;10,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}
ch′1,2={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}
ch′1,3={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;12,8,10,8,12,10,12,12,12,9,9,12,12,14,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch′1,4={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;2,1,1,1,2,2,2,5,4,5,4,1,2,4,1}
ch′1,5={1,3,2,5,4,6,7,8,10,9,11,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch′1,6={2,3,1,6,5,4,7,8,10,11,9,12,13,14,15;4,11,14,11,11,14,11,15,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}
同样地,经变异操作后新子种群2中的个体变为:
ch′2,1={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch′2,2={3,1,2,4,6,5,7,8,9,11,10,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch′2,3={2,1,3,5,4,6,7,8,9,11,10,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,7,7,7,7;5,2,3,3,2,1,4,3,1,1,3,3,3,4,2}
ch′2,4={3,2,1,5,4,6,7,8,11,10,9,12,13,14,15;7,1,1,3,7,1,7,7,7,14,14,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch′1,5={2,1,3,5,4,6,7,8,9,11,10,12,13,14,15;14,13,13,14,3,13,3,3,4,3,4,4,4,4,4;3,2,4,4,2,2,3,3,3,3,4,3,5,5,3}
ch′2,6={2,1,3,6,4,5,7,8,10,9,11,12,13,14,15;7,15,1,3,7,1,7,7,7,14,14,7,7,7,7;5,2,3,3,2,1,4,3,1,1,3,3,3,4,2}
同样地,经变异操作后新子种群3中的个体变为:
ch′3,1={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,2,2,4,1}
ch′3,2={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;10,8,1,8,10,1,10,10,12,10,12,7,7,7,7;5,5,1,4,5,2,5,2,1,3,2,2,5,5,5}
ch′3,3={3,1,2,4,6,5,7,8,9,10,11,12,13,14,15;10,8,1,8,10,1,10,10,12,10,10,3,3,3,3;3,2,4,3,1,1,5,2,3,4,3,2,5,3,4}
ch′3,4={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;13,3,7,13,3,7,3,3,3,10,12,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,5,2,4,1}
ch′3,5={2,3,1,4,6,5,7,8,9,11,10,12,13,14,15;13,2,2,13,3,2,3,3,4,3,4,4,4,4,4;1,2,3,3,1,2,2,2,1,2,2,3,4,3,2}
ch′3,6={3,1,2,4,5,6,7,8,9,10,11,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
执行步骤8.3:对每个新子种群中的所有个体采用FBI&D进行解码与改进,获得所有个体的工作流响应时间和执行成本,然后计算所有不可行个体的相对适应度值和可行个体的绝对适应度值;
经过FBI&D解码与改进后的新子种群1中个体为:
ch′1,1={3,1,6,2,4,5,7,8,10,11,9,12,13,14,15;10,7,12,12,7,12,7,7,7,7,12,7,7,7,7;1,2,2,1,1,2,3,1,1,2,2,3,1,1,2}
ch′1,2={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}
ch′1,3={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;12,8,10,8,12,10,12,12,12,9,9,12,12,14,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch′1,4={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;2,1,1,1,2,2,2,5,4,5,4,1,2,4,1}
ch′1,5={1,3,2,5,4,6,7,8,10,9,11,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch′1,6={2,3,1,6,5,4,7,8,10,11,9,12,13,14,15;4,11,14,11,11,14,11,15,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}
新子种群1中个体的工作流响应时间分别为:rs′1,1=203165.33,rs′1,2=134946,rs′1,3=276672,rs′1,4=650488,rs′1,5=124377.33,rs′1,6=187119.33;
新子种群1中个体的工作流执行成本分别为:ct′1,1=953,ct′1,2=976,ct′1,3=1682.8,ct′1,4=1348.7,ct′1,5=937.1,ct′1,6=1577;
新子种群1中不可行个体的相对适应度值分别为:rfit′1,1=2.52,rfit′1,2=2.01,rfit′1,3=3.81,rfit′1,4=6.35,rfit′1,6=3.02;
新子种群1中可行个体的绝对适应度值分别为:afit′1,5=168336.4;
同样地,经FBI&D解码与改进后生成新子种群2中的个体如下:
ch′2,1={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch′2,2={3,1,2,4,6,5,7,8,9,11,10,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch′2,3={2,1,3,5,4,6,7,8,9,11,10,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,7,7,7,7;5,2,3,3,2,1,4,3,1,1,3,3,3,4,2}
ch′2,4={3,2,1,5,4,6,7,8,11,10,9,12,13,14,15;7,1,1,3,7,1,7,7,7,14,14,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch′2,5={2,1,3,5,4,6,7,8,9,11,10,12,13,14,15;14,13,13,14,3,13,3,3,4,3,4,4,4,4,4;3,2,4,4,2,2,3,3,3,3,4,3,5,5,3}
ch′2,6={2,1,3,6,4,5,7,8,10,9,11,12,13,14,15;7,15,1,3,7,1,7,7,7,14,14,7,7,7,7;5,2,3,3,2,1,4,3,1,1,3,3,3,4,2}
新子种群2中个体的工作流响应时间分别为:rs′2,1=120122.67,rs′2,2=124377.33,rs′2,3=259775.33,rs′2,4=201660,rs′2,5=173548.67,rs′2,6=177472;
新子种群2中个体的工作流执行成本分别为:ct′2,1=907.7,ct′2,2=991.7,ct′2,3=1498.1,ct′2,4=1248.3,ct′2,5=1180.1,ct′2,6=1131.6;
新子种群2中不可行个体的相对适应度值分别为:rfit′2,3=3.5,rfit′2,4=2.8,rfit′2,5=2.52,rfit′2,6=2.5;
新子种群2中可行个体的绝对适应度值分别为:afit′2,1=162843.6,afit′2,2=173796.4;
同样地,经FBI&D解码与改进后生成新子种群3中的个体如下:
ch′3,1={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,2,2,4,1}
ch′3,2={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;10,8,1,8,10,1,10,10,12,10,12,7,7,7,7;5,5,1,4,5,2,5,2,1,3,2,2,5,5,5}
ch′3,3={3,1,2,4,6,5,7,8,9,10,11,12,13,14,15;10,8,1,8,10,1,10,10,12,10,10,3,3,3,3;3,2,4,3,1,1,5,2,3,4,3,2,5,3,4}
ch′3,4={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;13,3,7,13,3,7,3,3,3,10,12,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,5,2,4,1}
ch′3,5={2,3,1,4,6,5,7,8,9,11,10,12,13,14,15;13,2,2,13,3,2,3,3,4,3,4,4,4,4,4;1,2,3,3,1,2,2,2,1,2,2,3,4,3,2}
ch′3,6={3,1,2,4,5,6,7,8,9,10,11,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
新子种群3中个体的工作流响应时间分别为:rs′3,1=322020,rs′3,2=242842.67,rs′3,3=230304,rs′3,4=309217.33,rs′3,5=239151.33,rs′3,6=128606.67;
新子种群3中个体的工作流执行成本分别为:ct′3,1=1437.4,ct′3,2=1544.2,ct′3,3=1233.7,ct′3,4=1451.6,ct′3,5=1215.4,ct′3,6=867.8;
新子种群3中不可行个体的相对适应度值分别为:rfit′3,1=3.91,rfit′3,2=3.41,rfit′3,3=3.01,rfit′3,4=3.83,rfit′3,5=3.06;
新子种群3中可行个体的绝对适应度值分别为:afit′3,6=163944;
执行步骤8.4:对于每个子种群,从优到劣从当代子种群和新子种群中选出N个不同的个体形成新的当代子种群,转到步骤5;
从优到劣从当代子种群1和新子种群1中选出ch1,4、ch1,2、ch1,5、ch′1,5、ch1,6、ch′1,2形成下一代子种群1,即GP1={ch1,4,ch1,2,ch1,5,ch′1,5,ch1,6,ch′1,2};同理,
GP2={ch2,5,ch′2,1,ch2,3,ch2,1,ch2,2,ch′2,2},GP3={ch3,3,ch′3,6,ch3,6,ch3,5,ch3,4,ch3,2}。
令CP1=GP1,则当代子种群1即CP1的所有个体变为:
ch1,1={1,2,3,4,6,5,7,8,10,9,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,2={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch1,3={1,3,2,6,4,5,7,8,11,9,10,12,13,14,15;2,9,7,2,9,7,9,9,15,15,9,15,15,15,15;1,5,3,1,4,3,5,4,5,3,3,1,4,4,5}
ch1,4={1,3,2,5,4,6,7,8,10,9,11,12,13,14,15;2,7,4,7,2,4,2,2,12,12,2,12,12,12,12;3,5,2,5,1,2,5,4,2,2,4,5,5,2,3}
ch1,5={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;12,8,10,8,12,10,12,12,12,9,9,12,12,12,12;2,1,1,1,2,2,2,5,4,5,4,5,2,4,1}
ch1,6={2,3,1,6,5,4,7,8,9,11,10,12,13,14,15;4,11,14,11,11,14,11,11,5,11,11,11,11,11,11;1,2,3,4,4,1,1,3,3,2,5,2,3,5,1}
其个体的工作流响应时间分别为:rs1,1=121785.33,rs1,2=124377.33,rs1,3=124377.33,rs1,4=124377.33,rs1,5=129309.33,rs1,6=134946;
其个体的工作流执行成本分别为:ct1,1=917.7,ct1,2=937.1,ct1,3=937.1,ct1,4=937.1,ct1,5=992.3,ct1,6=976;
其不可行个体的相对适应度值分别为:rfit1,6=2.01;
其可行个体的绝对适应度值分别为:afit1,1=164841.2,afit1,2=168336.4,
afit1,3=168336.4,afit1,4=168336.4,afit1,5=176815.6;
令CP2=GP2,当代子种群2即CP2的所有个体变为:
ch2,1={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,2={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,3={3,1,2,5,4,6,7,8,9,10,11,12,13,14,15;10,11,3,11,10,3,10,10,10,14,14,14,14,14,14;1,4,5,1,4,2,1,4,3,5,5,3,3,5,5}
ch2,4={3,2,1,5,4,6,7,8,11,10,9,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
ch2,5={1,2,3,6,5,4,7,8,10,11,9,12,13,14,15;1,4,11,4,1,11,1,1,15,1,15,15,15,15,15;5,4,2,5,3,1,1,2,1,1,5,4,4,2,5}
ch2,6={3,1,2,4,6,5,7,8,9,11,10,12,13,14,15;8,6,1,6,8,1,8,8,12,12,8,12,12,12,12;5,1,4,4,4,5,3,5,1,4,3,5,1,2,2}
其个体的工作流响应时间分别为:rs2,1=120122.67,rs2,2=120122.67,rs2,3=120122.67,rs2,4=124377.33,rs2,5=124548,rs2,6=124377.33;
其个体的工作流执行成本分别为:ct2,1=907.7,ct2,2=907.7,ct2,3=935,ct2,4=937.1,ct2,5=939.2,ct2,6=991.7;
其可行个体的绝对适应度值分别为:afit2,1=162843.6,afit2,2=162843.6,afit2,3=165573.6,afit2,4=168336.4,afit2,5=168648.8,afit2,6=173796.4;
令CP3=GP3,当代子种群3即CP3的所有个体变为:
ch3,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,2={3,1,2,4,5,6,7,8,9,10,11,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,3={1,3,2,4,5,6,7,8,9,10,11,12,13,14,15;4,8,6,4,8,6,8,8,8,9,9,9,9,9,9;4,2,3,5,4,5,1,5,5,2,5,5,3,4,4}
ch3,4={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;10,8,1,8,10,1,10,10,12,10,12,12,12,12,12;5,3,2,2,4,3,1,5,1,5,3,5,2,4,1}
ch3,5={1,2,3,6,5,4,7,8,9,10,11,12,13,14,15;1,2,3,2,1,3,1,1,1,4,4,4,4,4,4;4,4,3,4,1,4,4,1,2,4,3,1,4,1,3}
ch3,6={3,1,2,4,6,5,7,8,9,10,11,12,13,14,15;13,3,7,13,3,7,3,3,3,10,10,3,3,3,3;3,2,4,3,1,1,5,2,3,4,3,2,5,3,4}
其个体的工作流响应时间分别为:rs3,1=120122.67,rs3,2=128606.67,rs3,3=120122.67,rs3,4=124548,rs3,5=170124,rs3,6=163176;
其个体的工作流执行成本分别为:ct3,1=907.7,ct3,2=867.8,ct3,3=932.9,ct3,4=939.2,ct3,5=1012.9,ct3,6=1079.9;
其不可行个体的相对适应度值分别为:rfit3,5=2.32,rfit3,6=2.34;
其可行个体的绝对适应度值分别为:afit3.1=162843.6,afit3,2=163944,afit3.3=165363.6,afit3.4=168648.8;
转到步骤5。
……
这样不断重复步骤5、6、8,5、6、8,……,5、6、8,迭代10代后,当代种群变为:
当代子种群1即CP1中的所有个体为:
ch1,1={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,11,10,10,10,10;1,3,3,2,4,1,4,3,2,5,4,4,2,5,2}
ch1,2={1,3,2,6,4,5,7,8,9,10,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,3={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,4={1,2,3,4,6,5,7,8,10,9,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,5={1,3,2,6,4,5,7,8,10,9,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,6={1,3,2,6,4,5,7,8,9,10,11,12,13,14,15;2,9,7,2,9,7,9,9,15,15,9,15,15,15,15;1,5,3,1,4,3,5,4,5,3,3,1,4,4,5}
其个体的工作流响应时间分别为:rs1,1=124830.67,rs1,2=121785.33,rs1,3=121785.33,rs1,4=121785.33,rs1,5=121785.33,rs1,6=124377.33;
其个体的工作流执行成本分别为:ct1,1=866.3,ct1,2=898.8,ct1,3=898.8,ct1,4=917.7,ct1,5=917.7,ct1,6=937.1;
其可行个体的绝对适应度值分别为:afit1,1=161528.4,afit1,2=162951.2,afit1,3=162951.2,afit1,4=164841.2,afit1,5=164841.2,afit1,6=168336.4;
当代子种群2即CP2中的所有个体为:
ch2,1={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,2={1,3,2,4,6,5,7,8,11,9,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,3={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,4={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;10,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,5={1,3,2,4,6,5,7,8,11,9,10,12,13,14,15;10,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,6={1,3,2,5,4,6,7,8,9,10,11,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
其个体的工作流响应时间分别为:rs2,1=120122.67,rs2,2=120122.67,rs2,3=120122.67,rs2,4=121178.67,rs2,5=121178.67,rs2,6=120122.67;
其个体的工作流执行成本分别为:ct2,1=907.7,ct2,2=907.7,ct2,3=907.7,ct2,4=924.9,ct2,5=924.9,ct2,6=932.9;
其可行个体的绝对适应度值分别为:afit2,1=162843.6,afit2,2=162843.6,afit2,3=162843.6,afit2,4=165197.2,afit2,5=165197.2,afit2,6=165363.6;
当代子种群3即CP3中的所有个体为:
ch3,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,2={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,3={1,3,2,4,5,6,7,8,9,11,10,12,13,14,15;4,8,6,4,8,6,8,8,8,9,9,9,9,9,9;4,2,3,5,4,5,1,5,5,2,5,5,3,4,4}
ch3,4={3,1,2,4,5,6,7,8,9,10,11,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,5={3,1,2,4,5,6,7,8,9,10,11,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,6={3,1,2,4,5,6,7,8,10,9,11,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
其个体的工作流响应时间分别为:rs3,1=128606.67,rs3,2=120122.67,rs3,3=120122.67,rs3,4=128606.67,rs3,5=120122.67,rs3,6=120122.67;
其个体的工作流执行成本分别为:ct3,1=842.6,ct3,2=907.7,ct3,3=907.7,ct3,4=867.8,ct3,5=932.9,ct3,6=932.9;
其可行个体的绝对适应度值分别为:afit3,1=161424,afit3,2=162843.6,afit3,3=162843.6,afit3,4=163944,afit3,5=165363.6,afit3,6=165363.6;
执行步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤9,否则转到步骤6;
种群迭代了10代,没有满足终止的条件,因此转到步骤6。
执行步骤6:判断是否满足进行子种群间交流的条件;如果满足则转到步骤7,否则直接转到步骤8;
种群迭代了10代,满足进行子种群间交流的条件,转到步骤7。
执行步骤7:进行子种群间的交流;
执行步骤7.1:令精英个体集由于ch1,1是CP1中的最优个体,因此选择ch1,1作为精英个体/>由于ch2,1是CP2中的最优个体且TPS中尚不存在个体ch2,1,因此选择ch2,1作为精英个体/>由于ch3,1是CP3中的最优个体且TPS中尚不存在个体ch3,1,因此选择ch3,1作为精英个体/>这样TPS中的个体分别为:
其工作流响应时间分别为:
其工作流执行成本分别为:
它们都为可行个体,其绝对适应度值分别为:
执行步骤7.2:从TPS中找出CP1中不存在的精英个体集合从TPS中找出CP2中不存在的精英个体集合/>从TPS中找出CP3中不存在的精英个体集合/>用CTPS1中的精英个体/>和/>来替换子种群1中从优到劣排名倒数的2个个体ch1,6和ch1,5;用CTPS2中的精英个体/>和/>来替换子种群2中从优到劣排名倒数的2个个体ch2,6和ch2,5;用CTPS3中的精英个体/>和/>来替换子种群3中从优到劣排名倒数的2个个体ch3,6和ch3,5
这样当代子种群1即CP1中的所有个体变为:
ch1,1={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,11,10,10,10,10;1,3,3,2,4,1,4,3,2,5,4,4,2,5,2}
ch1,2={1,3,2,6,4,5,7,8,9,10,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,3={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,4={1,2,3,4,6,5,7,8,10,9,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,5={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch1,6={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
其个体的工作流响应时间分别为:rs1,1=124830.67,rs1,2=121785.33,rs1,3=121785.33,rs1,4=121785.33,rs1,5=128606.67,rs1,6=120122.67;
其个体的工作流执行成本分别为:ct1,1=866.3,ct1,2=898.8,ct1,3=898.8,ct1,4=917.7,ct1,5=842.6,ct1,6=907.7;
其可行个体的绝对适应度值分别为:afit1,1=161528.4,afit1,2=162951.2,afit1,3=162951.2,afit1,4=164841.2,afit1,5=161424,afit1,6=162843.6;
同理,经交流后当代子种群2即CP2中的所有个体变为:
ch2,1={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,2={1,3,2,4,6,5,7,8,11,9,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,3={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,4={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;10,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,5={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch2,6={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,11,10,10,10,10;1,3,3,2,4,1,4,3,2,5,4,4,2,5,2}
其个体的工作流响应时间分别为:rs2,1=120122.67,rs2,2=120122.67,rs2,3=120122.67,rs2,4=121178.67,rs2,5=128606.67,rs2,6=124830.67;
其个体的工作流执行成本分别为:ct2,1=907.7,ct2,2=907.7,ct2,3=907.7,ct2,4=924.9,ct2,5=842.6,ct2,6=866.3;
其可行个体的绝对适应度值分别为:afit2,1=162843.6,afit2,2=162843.6,afit2,3=162843.6,afit2,4=165197.2,afit2,5=161424,afit2,6=161528.4;
同理,经交流后当代子种群3即CP3中的所有个体变为:
ch3,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,2={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,3={1,3,2,4,5,6,7,8,9,11,10,12,13,14,15;4,8,6,4,8,6,8,8,8,9,9,9,9,9,9;4,2,3,5,4,5,1,5,5,2,5,5,3,4,4}
ch3,4={3,1,2,4,5,6,7,8,9,10,11,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,5={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch3,6={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,11,10,10,10,10;1,3,3,2,4,1,4,3,2,5,4,4,2,5,2}
其个体的工作流响应时间分别为:rs3,1=128606.67,rs3,2=120122.67,rs3,3=120122.67,rs3,4=128606.67,rs3,5=120122.67,rs3,6=124830.67;
其个体的工作流执行成本分别为:ct3,1=842.6,ct3,2=907.7,ct3,3=907.7,ct3,4=867.8,ct3,5=907.7,ct3,6=866.3;
其可行个体的绝对适应度值分别为:afit3,1=161424,afit3,2=162843.6,afit3,3=162843.6,afit3,4=163944,afit3,5=162843.6,afit3,6=161528.4;
执行步骤8:子种群进行独立进化;
经独立进化后,当代子种群1中的所有个体变为:
ch1,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch1,2={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,11,10,10,10,10;1,3,3,2,4,1,4,3,2,5,4,4,2,5,2}
ch1,3={3,1,2,6,4,5,7,8,9,10,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,11,10,10,10,10;1,3,3,2,4,1,4,3,2,5,4,4,2,5,2}
ch1,4={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch1,5={1,3,2,6,4,5,7,8,9,10,11,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
ch1,6={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,5,10,10,10,10;1,3,3,2,4,1,4,5,2,5,4,4,2,5,2}
其个体的工作流响应时间分别为:rs1,1=128606.67,rs1,2=124830.67,rs1,3=124830.67,rs1,4=120122.67,rs1,5=121785.33,rs1,6=121785.33;
其个体的工作流执行成本分别为:ct1,1=842.6,ct1,2=866.3,ct1,3=866.3,ct1,4=907.7,ct1,5=898.8,ct1,6=898.8;
其可行个体的绝对适应度值分别为:afit1,1=161424,afit1,2=161528.4,afit1,3=161528.4,afit1,4=162843.6,afit1,5=162951.2,afit1,6=162951.2;
经独立进化后,当代子种群2中的所有个体变为:
ch2,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch2,2={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,11,10,10,10,10;1,3,3,2,4,1,4,3,2,5,4,4,2,5,2}
ch2,3={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,4={1,3,2,4,6,5,7,8,11,9,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,5={1,3,2,5,4,6,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch2,6={1,3,2,5,4,6,7,8,11,10,9,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
其中个体的工作流响应时间分别为:rs2,1=128606.67,rs2,2=124830.67,rs2,3=120122.67,rs2,4=120122.67,rs2,5=120122.67,rs2,6=120122.67;
其中个体的工作流执行成本分别为:ct2,1=842.6,ct2,2=866.3,ct2,3=907.7,ct2,4=907.7,ct2,5=907.7,ct2,6=907.7;
其可行个体的绝对适应度值分别为:afit2,1=161424,afit2,2=161528.4,afit2,3=162843.6,afit2,4=162843.6,afit2,5=162843.6,afit2,6=162843.6;
经独立进化后,当代子种群3中的所有个体变为:
ch3,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,2={1,3,2,6,4,5,7,8,9,11,10,12,13,14,15;8,10,14,8,10,14,10,10,10,10,11,10,10,10,10;1,3,3,2,4,1,4,3,2,5,4,4,2,5,2}
ch3,3={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;2,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,4={1,3,2,4,6,5,7,8,9,11,10,12,13,14,15;3,8,5,3,8,5,8,8,8,14,14,14,14,14,14;4,1,5,1,5,4,2,5,2,3,4,2,3,5,1}
ch3,5={1,3,2,4,5,6,7,8,9,11,10,12,13,14,15;4,8,6,4,8,6,8,8,8,9,9,9,9,9,9;4,2,3,5,4,5,1,5,5,2,5,5,3,4,4}
ch3,6={3,1,2,4,5,6,7,8,9,10,11,12,13,14,15;1,5,1,2,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
其个体的工作流响应时间分别为:rs3,1=128606.67,rs3,2=124830.67,rs3,3=120122.67,rs3,4=120122.67,rs3,5=120122.67,rs3,6=128606.67;
其个体的工作流执行成本分别为:ct3,1=842.6,ct3,2=866.3,ct3,3=907.7,ct3,4=907.7,ct3,5=907.7,ct3,6=867.8;
其可行个体的绝对适应度值分别为:afit3,1=161424,afit3,2=161528.4,afit3,3=162843.6,afit3,4=162843.6,afit3,5=162843.6,afit3,6=163944;
转到步骤5
……
这样不断重复执行步骤5至步骤8,迭代50代后,当代种群变为:
当代子种群1中的所有个体为:
ch1,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch1,2={3,1,2,4,5,6,7,8,10,9,11,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch1,3={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch1,4={2,3,1,4,5,6,7,8,9,10,11,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch1,5={2,3,1,4,5,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch1,6={2,3,1,4,5,6,7,8,10,9,11,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
其个体的工作流响应时间分别为:rs1,1=127606.67,rs1,2=127606.67,rs1,3=127658.67,rs1,4=127658.67,rs1,5=127658.67,rs1,6=127658.67;
其个体的工作流执行成本分别为:ct1,1=771.6,ct1,2=771.6,ct1,3=771.6,ct1,4=771.6,ct1,5=771.6,ct1,6=771.6;
其可行个体的绝对适应度值分别为:afit1,1=153724,afit1,2=153724,afit1,3=153755.2,afit1,4=153755.2,afit1,5=153755.2,afit1,6=153755.2;
当代子种群2中的所有个体为:
ch2,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch2,2={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch2,3={2,1,3,4,5,6,7,8,11,9,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch2,4={2,1,3,4,6,5,7,8,11,9,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch2,5={2,1,3,5,6,4,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch2,6={2,3,1,4,5,6,7,8,9,10,11,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
其个体的工作流响应时间分别为:rs2,1=127606.67,rs2,2=127658.67,rs2,3=127658.67,rs2,4=127658.67,rs2,5=127658.67,rs2,5=127658.67;
其个体的工作流执行成本分别为:ct2,1=771.6,ct2,2=771.6,ct2,3=771.6,ct2,4=771.6,ct2,5=771.6,ct2,6=771.6;
其可行个体的绝对适应度值分别为:afit2,1=153724,afit2,2=153755.2,afit2,3=153755.2,afit2,4=153755.2,afit2,5=153755.2,afit2,6=153755.2;
当代子种群3中的所有个体为:
ch3,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,2={3,1,2,4,5,6,7,8,11,9,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,3={3,2,1,5,4,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,4={2,1,3,4,5,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,5={2,3,1,4,5,6,7,8,9,10,11,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
ch3,6={2,3,1,5,6,4,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5}
其个体的工作流响应时间分别为:rs3,1=127606.67,rs3,2=127606.67,rs3,3=127606.67,rs3,4=127658.67,rs3,5=127658.67,rs3,6=127658.67;
其个体的工作流执行成本分别为:ct3,1=771.6,ct3,2=771.6,ct3,3=771.6,ct3,4=771.6,ct3,5=771.6,ct3,6=771.6;
其可行个体的绝对适应度值分别为:afit3,1=153724,afit3,2=153724,afit3,3=153724,afit3,4=153755.2,afit3,5=153755.2,afit3,6=153755.2;
执行步骤9:如果当代种群中存在可行个体,那么输出当代种群中绝对适应度值最小的个体,其对应的执行方案为优化方案,否则无可行执行方案。
由于当代种群中存在可行个体,因此输出当代种群中绝对适应度值最小的个体
ch1,1={3,1,2,4,5,6,7,8,9,11,10,12,13,14,15;1,5,5,1,5,1,5,5,5,7,7,7,7,7,7;5,5,1,4,5,2,5,2,1,5,2,2,5,5,5},其对应的绝对适应度值为153724,工作流响应时间为:127606.67s,执行成本为:771.6元;对应的执行方案如表3所示。
执行顺序 任务编号 实例编号 开始时间 执行时间 结束时间 虚拟机类型编号
1 3 5 0 12084 12084 5
2 1 1 0 8584 8584 5
3 2 5 12084 7584 19668 5
4 4 1 8584 8386.67 16970.67 5
5 5 5 19668 10770.67 30438.67 5
6 6 1 16970.67 10822.67 27793.33 5
7 7 5 30438.67 16186.67 46625.33 5
8 8 5 46625.33 10626.67 57252 5
9 9 5 57252 15150.67 72402.67 5
10 11 7 57252 8816 66068 5
11 10 7 66068 7445.33 73513.33 5
12 12 7 73513.33 24866.67 98380 5
13 13 7 98380 8720 107100 5
14 14 7 107100 11666.67 118766.67 5
15 15 7 118766.67 8000 126766.67 5
表3
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。

Claims (5)

1.一种云计算环境下基于多种群遗传算法的工作流执行优化方法,其特征在于:包括以下步骤:
步骤1:获取云工作流执行优化所需的信息;
获取任务集T={t1,…,tI},ti表示任务i,即编号为i的任务;其中I是需要调度的任务数量;
获取任务间的时序关系:任务i的父任务集合PRi,任务i的子任务集合SCi,其中i=1,…,I;
获取任务相关参数:任务i的长度leni、leni>0,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表IFLi任务i被处理后产生的输出文件列表OFLi、/>及文件列表中文件file的大小file.size,其中:i=1,…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:/>file∈OFLi∧file∈IFLi+
获取云计算环境下的虚拟机类型集合VM={vm1,vm2,…,vmJ},其中J是虚拟机的类型数量,vmj表示j类虚拟机;
获取虚拟机相关参数:j类虚拟机的计算能力psj,j类虚拟机的带宽bwj,j类虚拟机的单位时间成本vcj,j类虚拟机的固定起租成本fcj,j类虚拟机的最小计费时间单位utj,j类虚拟机的最小起租时间ftj;租用j类虚拟机的成本计算如下:
其中:lt为租用时间,j=1,2…,J;
获取云计算环境下工作流执行的成本约束Budget与时间约束Deadline;若没有成本约束则设置Budget=MBV,若没有时间约束则设置Deadline=MDV;其中:MBV为成本上限,MDV为时间上限;
步骤2:计算任务的层次值;
对于没有父任务的开始任务i,其层次值为:
lvli=1 (1)
基于上述公式,其它任务的层次值采用如下递归公式进行计算:
步骤3:初始化当代种群;
当代种群中包含S个子种群,每个子种群又包含N个个体,N为偶数且N>S,其初始化过程如下:对每个当代子种群采用基于层次和效益比的个体随机生成方法生成N个不同的个体;
所述个体编码方法如下:ch={gr1,…,grI;gs1,…,gsI;gt1,…,gtI},其中{gr1,…,grI}是任务调度顺序列表,为任务编号的一个拓扑排序;{gs1,…,gsI}是虚拟机实例列表,即虚拟机分配列表,gsi表示给任务i分配的虚拟机实例编号,gs1,…,gsI的取值为1到I之间的整数值;{gt1,…,gtI}是虚拟机类型列表,gti表示编号为i的虚拟机实例的类型,gt1,…,gtI的取值为1到J之间的整数值;
所述基于层次和效益比的个体随机生成方法包括如下步骤:
步骤A1:根据任务层次值从小到大随机排列任务,即层次值小的排在大的前面,具有相同层次值的则随机排列,形成个体的任务调度顺序列表{gr1,…,grI};
步骤A2:随机生成I个1到J之间的整数:π1,…,πI;令gti=πi,i=1,…,I,生成虚拟机类型列表{gt1,…,gtI};
步骤A3:基于效益比生成个体的虚拟机分配列表{gs1,…,gsI};获得所有任务的开始时间si和结束时间fi,i=1,…,I;
步骤A3.1:令已分配任务的虚拟机实例集所有虚拟机实例的可得时间段列表vatl1=…=vatlI={[0,∞]};令所有任务的就绪时间rt1=…=rtI=0;令变量δ=1;
步骤A3.2:令变量i=grδ,变量k=1;计算把ti分别分配给每个潜在虚拟机实例后的综合效益比:
步骤A3.2.1:计算ti分配给编号为k=gsi的虚拟机实例后的执行时间其中:/>是把ti分配给编号为k的虚拟机实例处理时任务的处理时间,/> 是编号为k的虚拟机实例的处理能力;/>是把ti分配给编号为k的虚拟机实例处理时需要从其它的虚拟机获得输入文件的文件传输时间,k-是处理/>的虚拟机实例编号,/>和/>是编号为k和k-的虚拟机实例的带宽;/>是把ti分配给编号为k的虚拟机实例处理时需要从共享数据库获得输入文件的文件传输时间,/>
步骤A3.2.2:在vatlk中从早到晚找出一个空闲时段[νkk],满足υkk≥eti,k和υk-eti,k≥rti
步骤A3.2.3:计算ti分配给编号为k的虚拟机实例后的开始时间si,k=max{νk,rti},完成时间fi,k=si,k+eti,k
步骤A3.2.4:计算综合效益比ξi,k
如果insk∈INS,其中insk表示编号为k的虚拟机实例,则
其中:θ∈[0,1]是权重系数,μ>0是成本与时间的协调系数;
为已有任务分配给insk的情况下把ti分配给insk后insk的租用时间,lt′k=Rnt′k-Hrt′k为ti还没有分配给insk前insk的租用时间,/>为ti还没有分配给insk前insk的归还时间;/>为ti还没有分配给insk前insk的开始租用时间;
如果
其中为还没有任务分配给insk的情况下把ti分配给insk后insk的租用时间;
步骤A3.2.5:令k=k+1,如果k≤I,转到步骤A3.2.1;否则转到步骤A3.3;
步骤A3.3:按顺序从ξi,1,…,ξi,I中找出一个最小的,不妨设为如果编号为/>的虚拟机实例/>则/>
步骤A3.4:把任务i分配给编号为的虚拟机实例,令/>
步骤A3.4.1:计算任务的开始时间结束时间/>
步骤A3.4.2:更新任务i的子任务的就绪时间
步骤A3.4.3:在中从早到晚找出一个空闲时段/>满足/>
步骤A3.4.4:在vatlk中删除插入区间长度大于0的/>和/>
步骤A3.5:令δ=δ+1;如果δ≤I,那么转到步骤A3.2,否则转到步骤A3.6;
步骤A3.6:获得虚拟机分配列表{gs1,…,gsI};
步骤A4:输出一个个体{gr1,…,grI;gs1,…,gsI;gt1,…,gtI},操作结束;
步骤4:对当代种群中的所有个体采用FBI&D进行解码与改进,获得所有个体的工作流响应时间和执行成本,然后计算所有不可行个体的相对适应度值和可行个体的绝对适应度值;
对于每个当代子种群中的每个个体chn,所述FBI&D包括如下步骤:
步骤B1:令工作流反向响应时间rsn=∞;
步骤B2:采用基于插入模式的串行个体解码方法对个体chn进行解码,获得所有任务的完成时间f1,…,fI及其工作流响应时间rsn;如果rsn小于rsn,则转到步骤B3,否则,转到步骤B6;
步骤B3:把个体chn中的任务调度顺序列表根据任务完成时间fi从大到小重新排列,即把chn中的基因gri设置为倒数第i个完成的任务,i=1,…,I,形成反向个体chn
步骤B4:采用基于插入模式的串行反向个体解码方法对反向个体chn进行解码,获得所有任务反向完成时间f1,…,fI及其工作流反向响应时间rsn;若rsn小于rsn,则转到步骤B5,否则,转到步骤B6;
步骤B5:把反向个体chn中的任务调度顺序列表根据任务反向完成时间fi从大到小重新排列,即把chn中的基因gri设置为倒数第i个完成的任务,i=1,…,I,形成个体chn,转到步骤B2;
步骤B6:输出个体chn及其工作流响应时间rsn,并计算其工作流执行成本ctn,操作结束;
所述基于插入模式的串行个体解码方法对个体chn进行解码包括如下步骤:
步骤C1:令所有任务的就绪时间rt1=rt2=…=rtI=0;令变量δ=1;令所有虚拟机实例的可得时间段列表vatlk={[0,∞]},k∈{gs1,…,gsI};
步骤C2:选取编号为i=grδ的任务;
步骤C3:基于插入模式把任务i分配给编号为k=gsi的虚拟机实例;
步骤C3.1:计算任务i的执行时间
步骤C3.2:在vatlk中从早到晚找出一个空闲时段[νkk],满足υkk≥eti和υk-eti≥rti
步骤C3.3:计算任务i的开始时间si=max{νk,rti},完成时间fi=si+eti
步骤C3.4:更新任务i的子任务的就绪时间
步骤C3.5:在虚拟机可得时间段列表vatlk中删除[νkk],插入区间长度大于0的[νk,si]和[fik];
步骤C4:令δ=δ+1,如果δ≤I,则转到步骤C2,否则步骤C5;
步骤C5:获得任务的开始时间和结束时间:si、fi,i=1,…,I,计算工作流响应时间rsn,操作结束;
所述基于插入模式的串行反向个体解码方法对反向个体chn进行解码包括如下步骤:
步骤D1:令所有任务的反向就绪时间其中,SFLi是任务i输出给共享数据库的输出文件集合,即/>令变量δ=1;令虚拟机可得时间段列表vatlk={[0,∞]},k∈{gs1,…,gsI};
步骤D2:选取编号为i=grδ的任务;
步骤D3:基于插入模式把任务i分配给编号为k=gsi的虚拟机实例:
步骤D3.1:计算任务i的执行时间
步骤D3.2:在vatlk中从早到晚找出一个空闲时段[νkk],满足υkk≥eti和υk-eti≥rti
步骤D3.3:计算任务i的反向开始时间si=max{νk,rti},反向完成时间fi=si+eti
步骤D3.4:更新任务i的父任务的反向就绪时间
步骤D3.5:在虚拟机可得时间段列表vatlk中删除[νkk],插入区间长度大于0的[νk,si]和[fik];
步骤D4:令δ=δ+1,如果δ≤I,则转到步骤D2,否则步骤D5;
步骤D5:获得任务的反向开始时间si和反向完成时间fi,i=1,…,I,及工作流反向响应时间rsn=max{f1,…,fI},操作结束;
步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤9,否则转到步骤6;
所述终止条件为迭代到指定的代数TG或连续迭代GG代都没有出现可行个体或最优可行个体没有改进;
步骤6:判断是否满足进行子种群间交流的条件;如果满足则转到步骤7,否则转到步骤8;
所述进行子种群间交流的条件为每迭代EFG代或自上次交流后连续迭代EVG代最优个体没有改进;
步骤7:进行子种群间的交流;
步骤7.1:令精英个体集从每个当代子种群s即CPs中从优到劣选出当前TPS中尚不存在的1个个体,不妨设其为/>把/>放到TPS中;
步骤7.2:对每个CPs,s=1,…,S,从TPS中找出CPs中不存在的精英个体集合CTPSs,用CTPSs中的个体替换CPs中从优到劣排名倒数的|CTPSs|个个体,形成新的CPs
步骤8:子种群进行独立进化;
步骤8.1:对每个当代子种群进行交叉操作形成新子种群;
步骤8.2:对每个新子种群进行变异操作;
步骤8.3:对每个新子种群中的所有个体采用FBI&D进行解码与改进,获得所有个体的工作流响应时间和执行成本,然后计算所有不可行个体的相对适应度值和可行个体的绝对适应度值;
步骤8.4:对于每个子种群,从优到劣从当代子种群和新子种群中选出N个不同的个体形成新的当代子种群,转到步骤5;
对每个当代子种群,所述交叉操作包括如下步骤:
步骤E1:令n=1,新子种群为空;
步骤E2:采用基于排序的轮赌法从当代子种群中随机选择两个不同个体作为父体1和父体2,不妨设为 不妨设通过交叉生成的子体1和子体2为:
步骤E3:随机产生一个1到I-1的正整数α;随机产生一个小数λ∈[0,1),如果λ<0.5则转到步骤E4,否则转到步骤E5;
步骤E4:基于拓扑排序的任务调度顺序列表交叉操作:
步骤E4.1:chc1的任务调度顺序列表的前α个基因、虚拟机分配列表、虚拟机类型列表来自于父体1,即: chc1的任务调度顺序列表的后I-α个基因来自于父体2的任务调度顺序列表/>中删除父体1的任务调度顺序列表的前α个基因/>后的基因列表;
步骤E4.2:chc2的任务调度顺序列表的前α个基因、虚拟机分配列表、虚拟机类型列表来自于父体2,即: chc2的任务调度顺序列表的后I-α个基因来自于父体1的任务调度顺序列表/>中删除父体2的任务调度顺序列表的前α个基因/>后的基因列表;转到步骤E6;
步骤E5:进行虚拟机实例和类型的一体化交叉操作;
步骤E5.1:子体chc1的任务调度顺序列表,虚拟机分配列表的后I-α基因,虚拟机类型列表来自于chp1,即: 子体chc1的虚拟机分配列表的前α基因来自于chp2,即:
步骤E5.2:子体chc2的任务调度顺序列表,虚拟机分配列表的后I-α基因,虚拟机类型列表来自于chp2,即: 子体chc2的虚拟机分配列表的前α基因来自于chp1,即:
步骤E5.3:令虚拟机实例编号集对于所有的k∈SI1,在/>和/>中随机选择一个,不妨设为ε′k,令/>
步骤E5.4:令虚拟机实例编号集对于所有的k∈SI2,在/>和/>中随机选择一个,不妨设为ε″k,令/>
步骤E6:获得子体chc1和chc2,并把它们放到新子种群中;n=n+1,如果n≤N/2,那么转到步骤E2;否则新子种群生成完毕,输出新子种群,子种群交叉操作结束;
对每个新子种群,所述变异操作包括如下步骤:
步骤F1:令变量n=1;
步骤F2:对新子种群中的第n个个体,生成一个随机数λ1∈[0,1),如果λ1<pm1,则转到步骤F3,否则转到步骤F4;
步骤F3:进行任务调度顺序列表变异,即:从任务调度顺序列表中随机选择一个基因,不妨设为gri;如果任务gri存在父任务,则向前找到第一个父任务gri′,令位置值pos1=i′+1,否则令pos1=1;如果任务gri存在子任务,则向后找到第一个子任务gri″,令位置值pos2=i″-1,否则令pos2=I;在[pos1,pos2]之间重新随机选择一个位置插入gri
步骤F4:生成一个随机数λ2∈[0,1),如果λ2<pm2,则转到步骤F5,否则转到步骤F6;
步骤F5:进行虚拟机分配列表变异,即:从虚拟机分配列表中随机选择一个基因,不妨设为gsi,在1到I之间重新随机选择一个值,不妨设为k,令gsi=k;
步骤F6:生成一个随机数λ3∈[0,1),如果λ3<pm3,则转到步骤F7,否则转到步骤F8;
步骤F7:进行虚拟机类型列表变异,即:从虚拟机类型列表的有效范围内随机选择一个基因,不妨设为gti,i∈{gs1,…,gsI};为编号为i的实例重新随机选择一个虚拟机类型,不妨设为j,则gti=j,转到步骤F8;
步骤F8:令n=n+1,如果n≤N,转到步骤F2;否则,新子种群变异操作结束;
其中,pm1,pm2,pm3∈[0,1)分别是任务调度顺序列表、虚拟机分配列表和虚拟机类型列表的变异率;
步骤9:如果当代种群中存在可行个体,那么输出当代种群中绝对适应度值最小的个体,其对应的执行方案为优化方案,否则无可行执行方案。
2.根据权利要求1所述的一种云计算环境下基于多种群遗传算法的工作流执行优化方法,其特征在于:所述MBV和MDV的一种具体计算方法如下:
其中:为ti的最大执行时间。
3.根据权利要求1所述的一种云计算环境下基于多种群遗传算法的工作流执行优化方法,其特征在于:对于每个子种群中的每个个体chn,所述工作流响应时间rsn和执行成本ctn的具体计算方法如下:
其中:rfi是任务i的响应时间,
其中:是编号为k的虚拟机实例的固定起租成本,/>是编号为k的虚拟机实例的单位时间成本,/>是编号为k的虚拟机实例的最小计费时间单位,/>是编号为k的虚拟机实例的最小起租时间,/>是编号为k的虚拟机实例的带宽,ltk=Rntk-Hrtk是编号为k的虚拟机实例的租用时间,Hrtk为编号为k的虚拟机实例的开始租用时间;Rntk为编号为k的虚拟机实例的归还时间;/>tfi是完成OFLi中的文件输出给相应接收者的最大时刻,如果ti没有文件输出给共享数据库即/>那么相应接收者为处理ti的子任务的虚拟机,如果ti没有子任务即/>那么相应接收者为共享数据库,另外如果ti即有文件输出给共享数据库又有子任务即/>那么相应接收者为处理ti的子任务的虚拟机和共享数据库,
4.根据权利要求1所述的一种云计算环境下基于多种群遗传算法的工作流执行优化方法,其特征在于:对于每个子种群中的每个个体chn,n=1,2…,N,如果ctn≤Budget∧rsn≤Deadline,则chn为可行个体,否则chn为不可行个体;
不可行个体的相对适应度值的具体计算方法如下:
可行个体的绝对适应度值的具体计算方法如下:afitn=θ×μ×ctn+(1-θ)×rsn
其中:θ∈[0,1]是权重系数,μ>0是成本与时间的协调系数;
进行个体优劣比较时,可行个体优于不可行个体;对于都是可行个体,则绝对适应度值越小,个体越优;对于都是不可行个体,则相对适应度值越小,个体越优。
5.根据权利要求1所述的一种云计算环境下基于多种群遗传算法的工作流执行优化方法,其特征在于:所述步骤E2中基于排序的轮赌法从当代子种群中随机选择两个不同个体作为父体1和父体2的具体步骤如下:
步骤E2.1:对当子代种群中的个体从优到劣进行排序,获得个体n的排序值rkn,n=1,…,N,其中最优的其取1,次优的其取2,以此类推,最劣的其取N;
步骤E2.2:计算个体n被选中的概率R>1为区分度系数;
步骤E2.3:计算累计概率A0=0,
步骤E2.4:产生一个随机数λ1∈[0,1),如果An-1≤λ1<An,那么选择个体n作为父体1;
步骤E2.5:产生一个随机数λ2∈[0,1),如果An′-1≤λ2<An′并且n′≠n,那么选择个体n′作为父体2,转到步骤E2.6,否则转到步骤E2.5;
步骤E2.6:个体选择操作结束。
CN201911259967.0A 2019-12-10 2019-12-10 云计算环境下基于多种群遗传算法的工作流执行优化方法 Active CN111026534B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911259967.0A CN111026534B (zh) 2019-12-10 2019-12-10 云计算环境下基于多种群遗传算法的工作流执行优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911259967.0A CN111026534B (zh) 2019-12-10 2019-12-10 云计算环境下基于多种群遗传算法的工作流执行优化方法

Publications (2)

Publication Number Publication Date
CN111026534A CN111026534A (zh) 2020-04-17
CN111026534B true CN111026534B (zh) 2023-12-22

Family

ID=70205389

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911259967.0A Active CN111026534B (zh) 2019-12-10 2019-12-10 云计算环境下基于多种群遗传算法的工作流执行优化方法

Country Status (1)

Country Link
CN (1) CN111026534B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181598B (zh) * 2020-10-12 2022-12-09 内蒙古农业大学 基于改进遗传算法的云计算任务调度方法
CN116506006B (zh) * 2023-06-29 2023-10-03 北京华龙通科技有限公司 卫星通信无线资源管理任务调度方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345657A (zh) * 2013-04-02 2013-10-09 江苏大学 云计算环境下基于遗传和蚁群的任务调度方法
CN103902375A (zh) * 2014-04-11 2014-07-02 北京工业大学 一种基于改进遗传算法的云任务调度方法
CN107015856A (zh) * 2017-03-30 2017-08-04 青海大学 云环境下科学工作流中的任务调度方案生成方法及装置
CN109992355A (zh) * 2019-01-30 2019-07-09 北京理工大学 一种基于改进非支配遗传算法的多目标云工作流调度方法
CN110119317A (zh) * 2019-05-22 2019-08-13 湖南大学 一种基于遗传算法的云计算任务调度方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8893130B2 (en) * 2007-03-26 2014-11-18 Raytheon Company Task scheduling method and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345657A (zh) * 2013-04-02 2013-10-09 江苏大学 云计算环境下基于遗传和蚁群的任务调度方法
CN103902375A (zh) * 2014-04-11 2014-07-02 北京工业大学 一种基于改进遗传算法的云任务调度方法
CN107015856A (zh) * 2017-03-30 2017-08-04 青海大学 云环境下科学工作流中的任务调度方案生成方法及装置
CN109992355A (zh) * 2019-01-30 2019-07-09 北京理工大学 一种基于改进非支配遗传算法的多目标云工作流调度方法
CN110119317A (zh) * 2019-05-22 2019-08-13 湖南大学 一种基于遗传算法的云计算任务调度方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向工作流任务的云计算资源多目标与容错调度研究;姚光顺;中国博士论文全文数据库;第I139-15页 *

Also Published As

Publication number Publication date
CN111026534A (zh) 2020-04-17

Similar Documents

Publication Publication Date Title
CN108880663A (zh) 基于改进遗传算法的天地一体化网络资源分配方法
CN107679750B (zh) 一种基于自适应系数遗传算法的云制造服务资源匹配方法
CN111026534B (zh) 云计算环境下基于多种群遗传算法的工作流执行优化方法
CN104572297A (zh) 一种基于遗传算法的Hadoop作业调度方法
CN112685138B (zh) 云环境下基于多种群混合智能优化的多工作流调度方法
CN105550825B (zh) 云计算环境下的基于MapReduce并行化的柔性工厂作业调度方法
CN109445386A (zh) 一种基于onba的云制造任务最短生产时间调度方法
CN116933939A (zh) 基于改进浣熊优化算法的柔性车间协同生产方法及系统
CN110928648B (zh) 融合启发式和智能计算的云工作流分段在线调度优化方法
CN114461368A (zh) 一种基于协同果蝇算法的多目标云工作流调度方法
CN110991917B (zh) 采用两阶段遗传算法的多模资源受限项目调度优化方法
CN107180286B (zh) 基于改进型花粉算法的制造服务供应链优化方法及系统
CN111090510A (zh) 混合启发式和遗传算法的两阶段云工作流调度优化方法
CN110928670B (zh) 云计算环境下基于偏序自适应遗传算法的工作流优化方法
CN110968428A (zh) 云工作流虚拟机配置和任务调度协同优化方法
TW201734831A (zh) 應用歸屬服務集群的分配方法和裝置
CN111026533A (zh) 云计算环境下基于分布式估计算法的工作流执行优化方法
CN111078361A (zh) 基于分布式估计算法的云工作流调度优化方法
CN111047183A (zh) 基于分层自适应智能计算算法的云工作流调度优化方法
CN110928671B (zh) 基于层次与负载均衡遗传算法的云工作流调度优化方法
CN114980216A (zh) 基于移动边缘计算的依赖型任务卸载系统及方法
CN115185651A (zh) 一种基于云计算的工作流优化调度算法
CN110737984B (zh) 云制造环境下的机械产品服务优选方法
CN110941487B (zh) 云计算环境下基于多阶段遗传算法的工作流调度优化方法
CN110928669B (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
GR01 Patent grant
GR01 Patent grant