CN110991758A - 使用二维定长编码智能计算算法的云工作流调度优化方法 - Google Patents

使用二维定长编码智能计算算法的云工作流调度优化方法 Download PDF

Info

Publication number
CN110991758A
CN110991758A CN201911261557.XA CN201911261557A CN110991758A CN 110991758 A CN110991758 A CN 110991758A CN 201911261557 A CN201911261557 A CN 201911261557A CN 110991758 A CN110991758 A CN 110991758A
Authority
CN
China
Prior art keywords
task
virtual machine
individual
population
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
CN201911261557.XA
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 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 CN201911261557.XA priority Critical patent/CN110991758A/zh
Publication of CN110991758A publication Critical patent/CN110991758A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Data Mining & Analysis (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 BDA0002311734840000021
获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
Figure BDA0002311734840000022
获取云计算环境下的虚拟机集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 BDA0002311734840000031
需要从共享数据库获得输入文件的平均传输时间
Figure BDA0002311734840000032
需要从其它虚拟机获得输入文件的平均传输时间
Figure BDA0002311734840000033
ti执行时的平均处理时间计算如下:
Figure BDA0002311734840000034
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
Figure BDA0002311734840000035
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
Figure BDA0002311734840000036
其中
Figure BDA0002311734840000037
Figure BDA0002311734840000038
和ti间的文件平均传输时间,其计算如下:
Figure BDA0002311734840000039
然后自下而上计算任务的排序值rank,其计算过程如下:
对于没有子任务的结束任务i:
Figure BDA00023117348400000310
其它任务的排序值rank采用如下递归公式进行计算:
Figure BDA00023117348400000311
rank越大则任务的优先级越高;
步骤3:初始化当代种群;
基于HEFT生成1个个体,然后采用个体随机生成操作生成剩余的N-1个不同个体,形成当代初始种群,其中N是种群规模,为偶数;
所述个体采用二维定长编码,其方法如下:ch={(g1,1,g1,2),…,(gI,1,gI,2)},其中I是任务的数量,基因对(gi,1,gi,2)是一对任务和虚拟机编号,其中gi,1是任务编号,gi,2虚拟机编号,表示任务gi,1是分配给虚拟机gi,2处理的;
所述基于HEFT生成1个个体包括如下步骤:
步骤A1:令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,其中M为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,…,I;令变量k=1;令任务集UT=T;
步骤A2:从UT中取出一个rank最大的任务,不妨设为ti
步骤A3:令ti的可得虚拟机集AVMi=VMi,计算把ti分别分配给AVMi中的每个虚拟机后ti的开始时间和完成时间:
步骤A3.1:从AVMi中取出一个虚拟机,不妨设为vmj
步骤A3.2:计算ti分配给vmj处理后的执行时间
Figure BDA0002311734840000041
步骤A3.3:在vatlj中从早到晚找出一个空闲时段[νjj],满足υjj≥eti,j和υj-eti,j≥rti
步骤A3.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rti},完成时间fi,j=si,j+eti,j
步骤A3.5:若AVMi不为空,则转到步骤A3.1,否则转到步骤A4;
步骤A4:按虚拟机顺序找出能最早完成ti的虚拟机,不妨设为vmj,(gk,1,gk,2)=(i,j),把ti分配给vmj
步骤A4.1:令ti的开始时间si=si,j,ti的完成时间fi=fi,j
步骤A4.2:更新ti的子任务的就绪时间
Figure BDA0002311734840000042
步骤A4.3:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤A5:若UT不为空,则k=k+1,转到步骤A2,否则转到步骤A6;
步骤A6:获得一个基于HEFT的个体ch={(g1,1,g1,2),…,(gI,1,gI,2)},计算其适应度值,操作结束;
其中:
ωi,j:是vmj处理ti的时间,
Figure BDA0002311734840000051
Figure BDA0002311734840000052
是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,
Figure BDA0002311734840000053
Figure BDA0002311734840000054
是处理
Figure BDA0002311734840000055
的虚拟机;
τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,
Figure BDA0002311734840000056
所述个体随机生成操作包括如下步骤:
步骤B1:令变量k=1,令任务集UT=T;
步骤B2:从UT中随机选择一个任务,不妨设为ti
步骤B3:从VMi中随机选择一个虚拟机,不妨设为vmj
步骤B4:令(gk,1,gk,2)=(i,j),从UT中删除ti
步骤B5:k=k+1,如果k≤I,那么转到步骤B2;否则转到步骤B6;
步骤B6:输出一个个体ch={(g1,1,g1,2),…,(gI,1,gI,2)},操作结束;
步骤4:采用基于插入模式的串行个体解码方法计算当代初始种群中所有随机生成个体的适应度值,并用基于负载均衡的个体改进方法对当代初始种群中的所有个体进行改进;
所述基于插入模式的串行个体解码方法包括如下步骤:
步骤C1:初始化系统状态:令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,其中M为一个接近无穷大的数;令所有任务的就绪时间rti=0,令任务集P(ti)=PRi,i=1,2,…,I;令任务集
Figure BDA0002311734840000057
UT=T;把UT中
Figure BDA0002311734840000058
的ti移到RT中;
步骤C2:在个体基因对中从前向后选出一个其任务在RT中存在的,不妨设为(gk,1,gk,2);
步骤C3:把任务i=gk,1分配给虚拟机j=gk,2
步骤C3.1:计算ti的执行时间
Figure BDA0002311734840000061
步骤C3.2:在vatlj中从早到晚找出一个空闲时段[νjj],满足υjj≥eti和υj-eti≥rti
步骤C3.3:ti的开始时间si=max{νj,rti},ti的完成时间fi=si+eti
步骤C3.4:更新ti的子任务的就绪时间
Figure BDA0002311734840000062
步骤C3.5:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤C4:在所有
Figure BDA0002311734840000063
中删除ti
Figure BDA0002311734840000064
在RT中删除ti;把UT中
Figure BDA0002311734840000065
Figure BDA0002311734840000066
移到RT中;如果RT不为空,则转到步骤C2,否则转到步骤C5;
步骤C5:获得所有任务的完成时间fi,计算其适应度值,操作结束;
所述基于负载均衡的个体改进方法包括如下步骤:
步骤D1:计算各虚拟机负载
Figure BDA0002311734840000068
步骤D2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤D3,否则转到步骤D4;
步骤D3:令任务集
Figure BDA0002311734840000067
转到步骤D5;
步骤D4:令任务集STj′=Tj′,转到步骤D5;
步骤D5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机的负载是最高的任务i′,转到步骤D6;否则转到步骤D7;
步骤D6:把任务i′分配给虚拟机j′,即使gk,1=i′的gk,2等于j′,形成新个体,采用基于插入模式的串行个体解码方法对新个体进行解码,如果相对于原个体有改进,则用新个体替换原个体,转到步骤D7;否则转到步骤D5;
步骤D7:操作结束;
步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤10,否则转到步骤6;
所述终止条件可以为迭代到指定的代数TG或连续迭代GG代最优个体没有改进;
步骤6:对当代种群上进行N/2次交叉操作,形成新种群;
每次交叉操作随机选择循环交叉操作和虚拟机交叉操作中的一种进行;
所述循环交叉操作包括如下步骤:
步骤E1:基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2,不妨设父体1为
Figure BDA0002311734840000071
父体2为
Figure BDA0002311734840000072
步骤E2:初始化交叉点集
Figure BDA0002311734840000073
随机产生一个交叉位置α,CP=CP∪{α},令变量
Figure BDA0002311734840000074
步骤E3:如果
Figure BDA0002311734840000075
转到步骤E4,否则转到步骤E5;
步骤E4:在父体1中找出
Figure BDA0002311734840000076
的基因对作为下一个交叉位置β,CP=CP∪{β},
Figure BDA0002311734840000077
转到步骤E3;
步骤E5:如果|CP|=I或|CP|=1,则转步骤E2;否则交换所有i∈CP位置上的基因对,生成两个新个体,操作结束;
所述虚拟机交叉操作包括如下步骤:
步骤F1:基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2;
步骤F2:随机选择1~I个任务;在父体1和父体2中交换这些任务的虚拟机分配生成两个新个体,操作结束;
循环交叉操作可以产生新的任务调度顺序和虚拟机分配方案,而虚拟机交叉操作不产生新的任务调度顺序但可以产生新的虚拟机分配方案;
步骤7:对新种群中的每个个体进行变异操作;
所述变异操作包括如下步骤:
步骤G1:生成2个[0,1)之间的随机数:λ1,λ2
步骤G2:如果λ1≤pm1,则转到步骤G3,否则转到步骤G4;
步骤G3:在个体中随机选择2个基因对,交换它们的位置;
步骤G4:如果λ2≤pm2,则转到步骤G5,否则转到步骤G6;
步骤G5:在个体中随机选择1个基因对,不妨设为(gi,1,gi,2),从
Figure BDA0002311734840000078
中重新随机选择1个虚拟机,不妨设为vmj,gi,2=j;
步骤G6:变异操作结束;
其中:pm1,pm2∈(0,1]分别是调度顺序变异率和虚拟机分配变异率;
步骤8:采用基于插入模式的串行个体解码方法计算新种群中所有个体的适应度值,并用基于负载均衡的个体改进方法对新种群中的所有个体进行改进;
步骤9:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群,转到步骤5;
步骤10:输出当代种群中的最优个体,其对应的调度方案即为优化方案。
进一步的,所述适应度值为工作流响应时间rs,其计算方法如下:
Figure BDA0002311734840000081
其中:rfi是任务i的响应时间,
Figure BDA0002311734840000082
SFLi是任务i输出给共享数据库的输出文件集,即
Figure BDA0002311734840000083
j是处理任务i的虚拟机编号,即j=gi′,2,而gi′,1=i;
适应度值越小,个体越优。
进一步的,所述步骤E1和步骤F1中采用基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2的具体步骤如下:
步骤H1:对当代种群中的个体按优到劣即适应度值从小到大进行排序,获得个体n的排序值rkn,n=1,…,N,其中排第一的其取1,排第二的其取2,以此类推,排最后一名的其取N;
步骤H2:计算个体n被选中的概率
Figure BDA0002311734840000084
R>1为区分度系数;
步骤H3:计算累计概率
Figure BDA0002311734840000085
步骤H4:产生一个随机数λ1∈[0,1),如果
Figure BDA0002311734840000086
那么选择个体n作为父体1;
步骤H5:产生一个随机数λ2∈[0,1),如果
Figure BDA0002311734840000087
并且n′≠n,那么选择个体n′作为父体2,转到步骤H6,否则转到步骤H5;
步骤H6:个体选择操作结束。
本发明的有益效果在于:
(1)相对于启发式方法、结合启发式的半智能计算方法及现有的基于分层编码的智能计算方法,本发明设计采用二维定长编码方法,任何一个调度方案都可以有一个个体与之对应,因此其搜索空间是完备的,可以实现全域搜索。
(2)相对于基于拓扑排序或分层的编码方法,本发明设计采用的二维整数编码方法在个体编码中无需考虑任务间的时序关系,这样基于该编码方法设计的遗传操作更简单有效。
(3)相对于传统的非插入模式和并行解码方法,本发明设计采用的基于插入模式的尽可能早地安排任务执行的串行个体解码方法通常能找到更好的对应调度方案。
(4)本发明设计采用的考虑了传输时间的负载均衡个体改进策略增强了个体的邻域寻优能力,从而能提高整个算法的寻优能力和搜索效率。
(5)本发明采用从当代种群和新种群中选出适应度好的不同个体形成下一代种群的进化策略,可以保证最优个体不被破坏及种群的多样性,可以使算法单调收敛。
(6)针对二维定长编码方法,本发明设计一套简单有效的交叉变异方法,提高了交叉变异的效率。
(7)相对于传统的随机初始化方法,本发明在初始化种群中播入了一个对应HEFT调度优化方案的个体,这样可以使算法在一个比较高的起点上开始搜索,从而缩短算法的收敛时间。
附图说明
图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 BDA0002311734840000091
Figure BDA0002311734840000101
表2
针对上述案例,如图1所示,一种使用二维定长编码智能计算算法的云工作流调度优化方法,包括以下实施步骤:
执行步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
获取任务间的时序关系,即任务i的父任务集PRi和子任务集SCi
Figure BDA0002311734840000102
Figure BDA0002311734840000103
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 BDA0002311734840000111
获取任务的相关参数: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 BDA0002311734840000121
Figure BDA0002311734840000122
Figure BDA0002311734840000123
同理可得
Figure BDA0002311734840000124
结果如表3所示:
Figure BDA0002311734840000125
表3
计算ti执行时需要从共享数据库获得输入文件的平均传输时间
Figure BDA0002311734840000126
Figure BDA0002311734840000127
Figure BDA0002311734840000128
同理可得
Figure BDA0002311734840000129
结果如表4所示:
Figure BDA00023117348400001210
表4
计算
Figure BDA00023117348400001211
和ti间的文件平均传输时间:
Figure BDA00023117348400001212
Figure BDA00023117348400001213
同理可得其它任务间的文件平均传输时间,结果如表5所示:
Figure BDA00023117348400001214
表5
计算ti执行时需要从其它虚拟机获得输入文件的平均传输时间
Figure BDA0002311734840000131
Figure BDA0002311734840000132
同理可得
Figure BDA0002311734840000133
结果如表6所示:
Figure BDA0002311734840000134
表6
计算任务i的ranki
Figure BDA0002311734840000135
Figure BDA0002311734840000136
Figure BDA0002311734840000137
同理可得rank12,…,rank1,结果如表7所示:
rank<sub>1</sub> rank<sub>2</sub> rank<sub>3</sub> rank<sub>4</sub> rank<sub>5</sub> rank<sub>6</sub> rank<sub>7</sub> rank<sub>8</sub>
4095.28 4114.79 4047.06 3572.20 3910.87 3815.62 3316.20 3288.99
rank<sub>9</sub> rank<sub>10</sub> rank<sub>11</sub> rank<sub>12</sub> rank<sub>13</sub> rank<sub>14</sub> rank<sub>15</sub>
3241.38 3284.12 3232.23 2935.03 2305.72 2289.55 53.30
表7
执行步骤3:初始化当代种群;
取种群规模N=10;基于HEFT生成1个个体,然后采用个体随机生成操作生成剩余的9个不同个体,形成当代初始种群;
基于HEFT生成1个个体的具体实施过程如下:
执行步骤A1:令所有虚拟机的可得时间段列表vatlj={[0,M]},j=1,2,3,4,5,6,M为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,…,15;k=1;UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
执行步骤A2:由于rank1=4095.28,rank2=4114.79,rank3=4047.06,…,rank15=53.30,从UT中取出一个优先级rank最大的任务,其为t2
执行步骤A3:令AVM2=VM2={vm1,vm3,vm4,vm5},计算把t2分配给AVM2中的每个虚拟机后t2的开始时间和完成时间;即执行步骤A3.1:从AVM2={vm1,vm3,vm4,vm5}中取出vm1;执行步骤A3.2:计算t2分配给vm1处理后的执行时间:ω2,1=138000/1000=138,
Figure BDA0002311734840000141
τ2,1=8×(36+4320)/200=174.24,则
Figure BDA0002311734840000142
执行步骤A3.3:在vatl1中从早到晚找出一个空闲时间段[0,M],满足M-0≥312.24和M-312.24≥0;执行步骤A3.4:计算t2分配给vm1处理后的开始时间s2,1=max{v1,rt2}=max{0,0}=0,完成时间f2,1=s2,1+et2,1=0+312.24=312.24;执行步骤A3.5:由于AVM2={vm3,vm4,vm5}不为空,转到步骤A3.1;……;这样不断重复执行步骤A3.1至步骤A3.5,直至AVM2为空,得到s2,3=0,s2,4=0,s2,5=0,f2,3=185.16,f2,4=185.16,f2,5=133.12,转至步骤A4;
执行步骤A4:按虚拟机顺序找出能最早完成t2的虚拟机,其为vm5,(g1,1,g1,2)=(2,5),把t2分配给vm5;即执行步骤A4.1:令t2的开始时间s2=s2,5=0,完成时间f2=f2,5=133.12;执行步骤A4.2:更新t2的子任务的就绪时间rt5=max{rt5,f2}=max{0,133.12}=133.12,rt10=133.12;执行步骤A4.3:在虚拟机可得时间段列表vatl5中删除[0,M],插入区间长度大于0的[133.12,M],即vatl5={[133.12,M]};
执行步骤A5:由于UT={t1,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}不为空,则k=k+1=1+1=2,转到步骤A2;
执行步骤A2:由于rank1=4095.28,rank3=4047.06,…,rank15=53.30,从UT={t1,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中取出一个优先级rank最大的任务,其为t1
执行步骤A3:令AVM1=VM1={vm1,vm4,vm5,vm6},计算把t1分配给AVM1中的每个虚拟机后t1的开始时间和完成时间;即执行步骤A3.1:从AVM1={vm1,vm4,vm5,vm6}中取出vm1;执行步骤A3.2:计算t1分配给vm1处理后的执行时间:ω1,1=126,
Figure BDA0002311734840000143
τ1,1=174.24,则et1,1=300.24;执行步骤A3.3:在vatl1中从早到晚找出一个空闲时间段[0,M],满足M-0≥300.24和M-300.24≥0;执行步骤A3.4:计算t1分配给vm1处理后的开始时间s1,1=max{0,0}=0,完成时间f1,1=300.24;执行步骤A3.5:AVM1={vm4,vm5,vm6}不为空,转到步骤3.1;……;这样不断重复执行步骤A3.1至步骤A3.5,直至AVM1为空,得到s1,4=0,s1,5=133.12,s1,6=0,f1,4=179.16,f1,5=262.24,f1,6=129.12,转至步骤A4;
执行步骤A4:按虚拟机顺序找出能最早完成t1的虚拟机,其为vm6,(g2,1,g2,2)=(1,6),把t1分配给vm6;即执行步骤A4.1:令t1的开始时间s1=s1,6=0,完成时间f1=f1,6=129.12;执行步骤A4.2:更新t1的子任务的就绪时间rt4=max{rt4,f1}=max{0,129.12}=129.12,rt5=max{rt5,f1}=max{133.12,129.12}=133.12,rt6=129.12,rt9=129.12;执行步骤A4.3:在虚拟机可得时间段列表vatl6中删除[0,M],插入区间长度大于0的[129.12,M],即vatl6={[129.12,M]};
执行步骤A5:由于UT={t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}不为空,则k=k+1=2+1=3,转到步骤A2;
执行步骤A2:由于rank3=4047.06,rank4=3572.20,…,rank15=53.30,从UT={t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中取出一个优先级rank最大的任务,其为t3
执行步骤A3:令AVM3=VM3={vm1,vm2,vm3,vm5},计算把t3分配给AVM3中的每个虚拟机后t3的开始时间和完成时间;即执行步骤A3.1:从AVM3={vm1,vm2,vm3,vm5}中取出vm1;执行步骤A3.2:计算t3分配给vm1处理后的执行时间:ω3,1=132,
Figure BDA0002311734840000151
τ3,1=174.24,则et3,1=306.24;执行步骤A3.3:在vatl1中从早到晚找出一个空闲时间段[0,M],满足M-0≥306.24和M-306.24≥0;执行步骤A3.4:计算t3分配给vm1处理后的开始时间s3,1=max{0,0}=0,完成时间f3,1=306.24;执行步骤A3.5:AVM3={vm2,vm3,vm5}不为空,转到步骤A3.1;……;这样不断重复执行步骤A3.1至步骤A3.5,直至AVM3为空,得到s3,2=0,s3,3=0,s3,5=133.12,f3,2=306.24,f3,3=182.16,f3,5=264.24,转至步骤A4;
执行步骤A4:按虚拟机顺序找出能最早完成t3的虚拟机,其为vm3,(g3,1,g3,2)=(3,3),把t3分配给vm3;即执行步骤A4.1:令t3的开始时间s3=s3,3=0,完成时间f3=f3,3=182.16;执行步骤A4.2:更新t3的子任务的就绪时间rt6=max{129.12,182.16}=182.16,rt11=182.16;执行步骤A4.3:在虚拟机可得时间段列表vatl3中删除[0,M],插入区间长度大于0的[182.16,M],即vatl3={[182.16,M]};
执行步骤A5:由于UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}不为空,则k=3+1=4,转到步骤A2;
……
这样不断重复执行步骤A2至步骤A5,直至
Figure BDA0002311734840000162
转到步骤A6;
执行步骤A6:获得一个基于HEFT的个体ch1={(2,5),(1,6),(3,3),(5,6),(6,3),(4,5),(7,5),(8,5),(10,4),(9,5),(11,3),(12,4),(13,6),(14,6),(15,6)},计算其适应度值即工作流响应时间rs1:由于
Figure BDA0002311734840000163
而SFL15={f15-1},故
Figure BDA0002311734840000161
操作结束;
基于个体随机生成操作生成1个个体的具体实施过程如下:
执行步骤B1:k=1,UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
执行步骤B2:从UT={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中随机选择一个任务,其为t3
执行步骤B3:从VM3={vm1,vm2,vm3,vm5}中随机选择一个虚拟机,其为vm2
执行步骤B4:令(g1,1,g1,2)=(3,2),从UT中删除t3,则UT={t1,t2,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
执行步骤B5:k=k+1=1+1=2,由于k=2≤I=15,则转到步骤B2;
执行步骤B2:从UT={t1,t2,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中随机选择一个任务,其为t13
执行步骤B3:从VM13={vm1,vm6}中随机选择一个虚拟机,其为vm6
执行步骤B4:令(g2,1,g2,2)=(13,6),从UT中删除t13,则UT={t1,t2,t4,t5,t6,t7,t8,t9,t10,t11,t12,t14,t15};
执行步骤B5:k=k+1=2+1=3,由于k=3≤I=15,则转到步骤B2;
执行步骤B2:从UT={t1,t2,t4,t5,t6,t7,t8,t9,t10,t11,t12,t14,t15}中随机选择一个任务,其为t4
执行步骤B3:从VM4={vm1,vm3,vm4,vm5,vm6}中随机选择一个虚拟机,其为vm6
执行步骤B4:令(g3,1,g3,2)=(4,6),从UT中删除t4,则UT={t1,t2,t5,t6,t7,t8,t9,t10,t11,t12,t14,t15};
执行步骤B5:k=3+1=4,由于k=4≤I=15,则转到步骤B2;
……
这样不断重复执行步骤B2至步骤B5,直至k=16>I=15,转到步骤B6;
执行步骤B6:输出个体ch2={(3,2),(13,6),(4,6),(5,6),(15,1),(6,5),(8,4),(10,2),(7,4),(1,6),(11,2),(2,5),(12,3),(9,1),(14,4)},操作结束;
同理,基于个体随机生成操作生成其它8个不同个体如下:
ch3={(4,4),(5,6),(2,1),(3,5),(14,4),(1,4),(7,2),(13,1),(8,6),(12,3),(11,2),(6,1),(9,5),(15,1),(10,4)};
ch4={(2,5),(8,5),(4,5),(1,6),(13,6),(15,6),(14,2),(11,6),(9,1),(3,1),(10,2),(6,3),(7,4),(5,1),(12,3)};
ch5={(2,4),(4,5),(8,6),(14,5),(6,3),(13,1),(3,2),(10,4),(11,3),(15,6),(5,6),(9,2),(12,5),(7,4),(1,6)};
ch6={(4,5),(1,1),(10,4),(2,5),(5,2),(6,1),(8,4),(15,1),(14,6),(12,5),(11,6),(13,6),(3,3),(7,2),(9,2)};
ch7={(15,1),(5,1),(7,4),(12,5),(2,3),(13,1),(9,1),(1,5),(11,6),(10,2),(8,6),(3,2),(4,3),(14,5),(6,3)};
ch8={(12,4),(14,6),(1,6),(10,2),(3,3),(4,4),(6,1),(11,2),(7,5),(15,1),(9,1),(13,1),(2,3),(8,5),(5,2)};
ch9={(7,5),(4,4),(5,2),(1,6),(8,4),(13,6),(9,5),(6,1),(15,6),(14,4),(3,3),(12,3),(11,2),(10,2),(2,1)};
ch10={(15,6),(6,5),(8,6),(3,5),(13,1),(11,4),(12,3),(7,4),(10,4),(1,4),(4,5),(14,6),(5,6),(9,1),(2,3)};
这样最终生成的初始当代种群为CP={ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10}。
执行步骤4:采用基于插入模式的串行个体解码方法计算当代初始种群中所有随机生成个体的适应度值,并用基于负载均衡的个体改进方法对当代初始种群中的所有个体进行改进;
对当代初始种群中所有随机生成的个体采用基于插入模式的串行个体解码方法进行解码,例如对当代种群中的ch9={(7,5),(4,4),(5,2),(1,6),(8,4),(13,6),(9,5),(6,1),(15,6),(14,4),(3,3),(12,3),(11,2),(10,2),(2,1)}采用基于插入模式的串行个体解码方法进行解码的具体实施过程如下:
执行步骤C1:初始化系统状态;令所有虚拟机的可得时间段列表vatlj={[0,M]},j=1,2,3,4,5,6,M为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,…,15;
Figure BDA0002311734840000181
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 BDA0002311734840000182
UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};把UT中
Figure BDA0002311734840000183
的任务,即t1、t2、t3移到RT中,则RT={t1,t2,t3},UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
执行步骤C2:在个体ch9的基因对中从前向后选出一个任务在RT={t1,t2,t3}中存在的,其为(1,6);
执行步骤C3:基于插入模式把任务1分配给虚拟机6;即执行步骤C3.1:计算t1的执行时间:ω1,6=126000/3000=42,
Figure BDA0002311734840000184
τ1,6=8×(36+4320)/400=87.12,则
Figure BDA0002311734840000185
执行步骤C3.2:在vatl6中从早到晚找出一个空闲时间段[0,M],满足M-0≥129.12和M-129.12≥0;执行步骤C3.3:计算t1分配给vm6处理后的开始时间s1=max{v6,rt1}=max{0,0}=0,完成时间f1=s1+et1=0+129.12=129.12;执行步骤C3.4:更新t1的子任务的就绪时间rt4=max{rt4,f1}=max{0,129.12}=129.12,rt5=max{0,129.12}=129.12,rt6=129.12,rt9=129.12;执行步骤C3.5:在虚拟机可得时间段列表vatl6中删除[0,M],插入区间长度大于0的[129.12,M],即vatl6={[129.12,M]};
执行步骤C4:在P(t4)、P(t5)、P(t6)、P(t9)中删除t1,则
Figure BDA0002311734840000186
P(t5)={t2},P(t6)={t3},P(t9)={t8},在RT中删除t1,则RT={t2,t3};由于
Figure BDA0002311734840000187
故把UT中的t4移到RT中,则RT={t2,t3,t4},UT={t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};由于RT={t2,t3,t4}不为空,则转到步骤C2;
执行步骤C2:在个体ch9的基因对中从前向后选出一个任务在RT={t2,t3,t4}中存在的,其为(4,4);
执行步骤C3:基于插入模式把任务4分配给虚拟机4;即执行步骤C3.1:计算t4的执行时间:ω4,4=102000/2000=51,
Figure BDA0002311734840000191
τ4,4=8×36/300=0.96,则et4=51.00+211.20+0.96=263.16;执行步骤C3.2:在vatl4中从早到晚找出一个空闲时间段[0,M],满足M-0≥263.16和M-263.16≥129.12;执行步骤C3.3:计算t4分配给vm4处理后的开始时间s4=max{v4,rt4}=max{0,129.12}=129.12,完成时间f4=129.12+263.16=392.28;执行步骤C3.4:更新t4子任务的就绪时间rt7=max{0,392.28}=392.28;执行步骤C3.5:在虚拟机可得时间段列表vatl4中删除[0,M],插入区间长度大于0的[392.28,M],即vatl4={[392.28,M]};
执行步骤C4:在P(t7)中删除t4,则P(t7)={t5,t6},在RT中删除t4,则RT={t2,t3};由于UT中不存在
Figure BDA0002311734840000192
的任务,则RT,UT均不变;由于RT={t2,t3}不为空,则转到步骤C2;
执行步骤C2:在个体ch9的基因对中从前向后选出一个任务在RT={t2,t3}中存在的,其为(3,3);
执行步骤C3:基于插入模式把任务3分配给虚拟机3;即执行步骤C3.1:计算t3的执行时间:ω3,3=66,
Figure BDA0002311734840000193
τ3,3=116.16,则et3=182.16;执行步骤C3.2:在vatl3中从早到晚找出一个空闲时间段[0,M],满足M-0≥182.16和M-182.16≥0;执行步骤C3.3:计算t3分配给vm3处理后的开始时间s3=max{0,0}=0,完成时间f3=182.16;执行步骤C3.4:更新t3子任务的就绪时间rt6=max{129.12,182.16}=182.16,rt11=182.16;执行步骤C3.5:在虚拟机可得时间段列表vatl3中删除[0,M],插入区间长度大于0的[182.16,M],即vatl3={[182.16,M]};
执行步骤C4:在P(t6)、P(t11)中删除t3,则
Figure BDA0002311734840000194
P(t11)={t8},在RT中删除t3,则RT={t2};把UT中的t6移到RT中,则RT={t2,t6},UT={t5,t7,t8,t9,t10,t11,t12,t13,t14,t15};由于RT={t2,t6}不为空,则转到步骤C2;
……
这样不断重复执行步骤C2至步骤C4,直至
Figure BDA0002311734840000202
获得所有任务的开始时间和完成时间,转到步骤C5;
执行步骤C5:获得所有任务的完成时间:f1=129.12,f2=1233.84,f3=182.16,f4=392.28,f5=1986.48,f6=921.60,f7=2016.48,f8=2022.36,f9=2219.40,f10=2885.88,f11=2438.52,f12=3721.16,f13=3730.44,f14=5665.44,f15=5709.64,计算其适应度值即工作流响应时间rs9:由于
Figure BDA0002311734840000203
而SFL15={f15-1},故
Figure BDA0002311734840000201
操作结束;
同理,经解码后可得其它个体的适应度值即工作流响应时间分别为:rs2=4357.96,rs3=5238.72,rs4=5363.32,rs5=5015.60,rs6=2290.72,rs7=5284.00,rs8=5948.00;rs10=4885.84;
对当代种群中的所有个体采用基于负载均衡的个体改进方法进行改进,例如对当代种群中ch9={(7,5),(4,4),(5,2),(1,6),(8,4),(13,6),(9,5),(6,1),(15,6),(14,4),(3,3),(12,3),(11,2),(10,2),(2,1)}采用基于负载均衡的个体改进方法进行改进的具体实施过程如下:
执行步骤D1:计算各虚拟机的负载:
Figure BDA0002311734840000204
ld2=336,ld3=74.4,ld4=69,ld5=38.8,ld6=50.6;
执行步骤D2:找出负载最小的虚拟机,其为vm5,由于ld5=38.8>0,故转到步骤D3;
执行步骤D3:
Figure BDA0002311734840000205
Figure BDA0002311734840000206
转到步骤D5;
执行步骤D5:由于ST5={t1,t4,t6,t8,t12}不为空,则从ST5中按顺序取出一个其所在虚拟机负载是最高的任务,其为t6,转到步骤D6;
执行步骤D6:把任务6分配给虚拟机5,形成新个体
Figure BDA0002311734840000207
采用基于插入模式的串行个体解码方法对新个体
Figure BDA0002311734840000211
进行解码,可得其适应度值即工作流响应时间为
Figure BDA0002311734840000212
由于
Figure BDA0002311734840000213
即新个体
Figure BDA0002311734840000214
相较于原个体ch9有改进,因此用新个体
Figure BDA0002311734840000215
替换原个体ch9,则
Figure BDA0002311734840000216
Figure BDA0002311734840000217
转到步骤D7;
执行步骤D7:操作结束;
同理,当代种群中的其它个体经基于负载均衡的个体改进方法改进后变为:
ch1={(2,5),(1,6),(3,3),(5,6),(6,3),(4,5),(7,5),(8,5),(10,4),(9,5),(11,3),(12,4),(13,6),(14,6),(15,6)};
ch2={(3,2),(13,6),(4,6),(5,6),(15,1),(6,5),(8,4),(10,2),(7,4),(1,6),(11,3),(2,5),(12,3),(9,1),(14,4)};
ch3={(4,4),(5,6),(2,1),(3,5),(14,4),(1,4),(7,2),(13,1),(8,6),(12,3),(11,3),(6,1),(9,5),(15,1),(10,4)};
ch4={(2,5),(8,5),(4,4),(1,6),(13,6),(15,6),(14,2),(11,6),(9,1),(3,1),(10,2),(6,3),(7,4),(5,1),(12,3)};
ch5={(2,4),(4,5),(8,6),(14,5),(6,3),(13,1),(3,2),(10,4),(11,3),(15,6),(5,6),(9,2),(12,5),(7,4),(1,6)};
ch6={(4,5),(1,1),(10,4),(2,5),(5,2),(6,1),(8,4),(15,6),(14,6),(12,5),(11,6),(13,6),(3,3),(7,2),(9,2)};
ch7={(15,1),(5,1),(7,4),(12,5),(2,3),(13,1),(9,1),(1,5),(11,6),(10,2),(8,6),(3,2),(4,4),(14,5),(6,3)};
ch8={(12,4),(14,6),(1,6),(10,2),(3,3),(4,4),(6,5),(11,2),(7,5),(15,1),(9,1),(13,1),(2,3),(8,5),(5,2)};
ch10={(15,6),(6,5),(8,6),(3,5),(13,1),(11,2),(12,3),(7,4),(10,4),(1,4),(4,5),(14,6),(5,6),(9,1),(2,3)};
其适应度值即工作流响应时间分别为:rs1=1174.64,rs2=3951.40,rs3=4912.00,rs4=5353.08,rs5=5015.60,rs6=2214.72,rs7=5186.88,rs8=5939.84,rs10=4879.12。
执行步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤10,否则转到步骤6;
终止条件设为迭代TG=50代;
当前种群只进化迭代了一代,不满足终止条件,因此转到步骤6。
执行步骤6:对当代种群上进行N/2次交叉操作,形成新种群;
对当代种群进行N/2=5次交叉操作的具体实施过程如下:
对当代种群进行第1次交叉操作:随机选择一种交叉操作,其为虚拟机交叉操作:
执行步骤F1:基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2;即执行步骤H1:对当代种群中的个体按优到劣即适应度值从小到大进行排序,获得每个个体对应的排序值:rk1=1,rk2=3,rk3=6,rk4=9,rk5=7,rk6=2,rk7=8,rk8=10,rk9=4,rk10=5;执行步骤H2:令R=1+1/N=1.1,计算个体ch1被选中的概率
Figure BDA0002311734840000221
同理A2=0.122,A3=0.092,A4=0.069,A5=0.083,A6=0.135,A7=0.076,A8=0.063,A9=0.111,A10=0.101,执行步骤H3:计算累计概率:
Figure BDA0002311734840000222
Figure BDA0002311734840000223
Figure BDA0002311734840000224
执行步骤H4:产生一个[0,1)的随机数λ1,其为0.157,由于
Figure BDA0002311734840000225
因此选择ch2作为父体1,即chp1=ch2={(3,2),(13,6),(4,6),(5,6),(15,1),(6,5),(8,4),(10,2),(7,4),(1,6),(11,3),(2,5),(12,3),(9,1),(14,4)};执行步骤H5:产生一个[0,1)的随机数λ2,其为0.739,由于
Figure BDA0002311734840000226
并且2≠8,因此选择ch8作为父体2,即chp2=ch8={(12,4),(14,6),(1,6),(10,2),(3,3),(4,4),(6,5),(11,2),(7,5),(15,1),(9,1),(13,1),(2,3),(8,5),(5,2)},转到步骤H6;执行步骤H6:个体选择操作结束;
执行步骤F2:随机选择1~15个任务,其为:任务1、任务2、任务3、任务4、任务6、任务8、任务9、任务11、任务12、任务13,在父体1和父体2中交换这些任务的虚拟机分配生成两个新个体ch′1={(3,3),(13,1),(4,4),(5,6),(15,1),(6,5),(8,5),(10,2),(7,4),(1,6),(11,2),(2,3),(12,4),(9,1),(14,4)}和ch′2={(12,3),(14,6),(1,6),(10,2),(3,2),(4,6),(6,5),(11,3),(7,5),(15,1),(9,1),(13,6),(2,5),(8,4),(5,2)},操作结束;
对当代种群进行第2次交叉操作:随机选择一种交叉操作,其为循环交叉操作:
执行步骤E1:基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2,其为:
chp1=ch3={(4,4),(5,6),(2,1),(3,5),(14,4),(1,4),(7,2),(13,1),(8,6),(12,3),(11,3),(6,1),(9,5),(15,1),(10,4)},
chp2=ch1={(2,5),(1,6),(3,3),(5,6),(6,3),(4,5),(7,5),(8,5),(10,4),(9,5),(11,3),(12,4),(13,6),(14,6),(15,6)};
执行步骤E2:初始化交叉点集
Figure BDA0002311734840000227
随机产生一个交叉位置,其为α=5,
Figure BDA0002311734840000231
执行步骤E3:由于
Figure BDA0002311734840000232
则转到步骤E4;
执行步骤E4:在父体1中找出
Figure BDA0002311734840000233
的基因对作为下一个交叉位置,则β=12,CP={5}∪{12}={5,12},
Figure BDA0002311734840000234
转到步骤E3;
执行步骤E3:由于
Figure BDA0002311734840000235
则转到步骤E4;
执行步骤E4:在父体1中找出
Figure BDA0002311734840000236
的基因对作为下一个交叉位置,则β=10,CP={5,12}∪{10}={5,10,12},
Figure BDA0002311734840000237
转到步骤E3;
执行步骤E3:由于
Figure BDA0002311734840000238
则转到步骤E4;
执行步骤E4:在父体1中找出
Figure BDA0002311734840000239
的基因对作为下一个交叉位置,则β=13,CP={5,10,12,13},
Figure BDA00023117348400002310
转到步骤E3;
执行步骤E3:由于
Figure BDA00023117348400002311
则转到步骤E4;
执行步骤E4:在父体1中找出
Figure BDA00023117348400002312
的基因对作为下一个交叉位置,则β=8,CP={5,8,10,12,13},
Figure BDA00023117348400002313
转到步骤E3;
执行步骤E3:由于
Figure BDA00023117348400002314
则转到步骤E4;
执行步骤E4:在父体1中找出
Figure BDA00023117348400002315
的基因对作为下一个交叉位置,则β=9,CP={5,8,9,10,12,13},
Figure BDA00023117348400002316
转到步骤E3;
执行步骤E3:由于
Figure BDA00023117348400002317
则转到步骤E4;
执行步骤E4:在父体1中找出
Figure BDA00023117348400002318
的基因对作为下一个交叉位置,则β=15,CP={5,8,9,10,12,13,15},
Figure BDA00023117348400002319
转到步骤E3;
执行步骤E3:由于
Figure BDA00023117348400002320
则转到步骤E4;
执行步骤E4:在父体1中找出
Figure BDA00023117348400002321
的基因对作为下一个交叉位置,则β=14,CP={5,8,9,10,12,13,14,15},
Figure BDA00023117348400002322
转到步骤E3;
执行步骤E3:由于
Figure BDA00023117348400002323
则转到步骤E5;
执行步骤E5:由于|CP|=8,则交换父体1和父体2中5、8、9、10、12、13、14、15位置上的基因对,生成两个新个体ch′3={(4,4),(5,6),(2,1),(3,5),(6,3),(1,4),(7,2),(8,5),(10,4),(9,5),(11,3),(12,4),(13,6),(14,6),(15,6)}和ch′4={(2,5),(1,6),(3,3),(5,6),(14,4),(4,5),(7,5),(13,1),(8,6),(12,3),(11,3),(6,1),(9,5),(15,1),(10,4)},操作结束;
同理,第3次选择的交叉操作是虚拟机交叉操作,生成的两个新个体如下:ch′5={(2,5),(1,6),(3,2),(5,6),(6,3),(4,5),(7,4),(8,4),(10,2),(9,5),(11,3),(12,4),(13,6),(14,4),(15,1)}和ch′6={(3,3),(13,6),(4,6),(5,6),(15,6),(6,5),(8,5),(10,4),(7,5),(1,6),(11,3),(2,5),(12,3),(9,1),(14,6)};
第4次选择的交叉操作是循环交叉操作,生成的两个新个体如下:ch′7={(3,2),(13,6),(4,6),(5,6),(15,1),(6,1),(8,4),(10,2),(14,6),(1,6),(11,6),(2,5),(12,3),(7,2),(9,2)}和ch′8={(4,5),(1,1),(10,4),(2,5),(5,2),(6,5),(8,4),(15,6),(7,4),(12,5),(11,3),(13,6),(3,3),(9,1),(14,4)};
第5次选择的交叉操作是虚拟机交叉操作,生成的两个新个体如下:ch′9={(2,5),(1,1),(3,3),(5,2),(6,3),(4,5),(7,5),(8,5),(10,4),(9,2),(11,6),(12,5),(13,6),(14,6),(15,6)}和ch′10={(4,5),(1,6),(10,4),(2,5),(5,6),(6,1),(8,4),(15,6),(14,6),(12,4),(11,3),(13,6),(3,3),(7,2),(9,5)};
这样生成的新种群为NP={ch′1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10}。
执行步骤7:对新种群中的每个个体进行变异操作;
设变异率pm1=0.2,pm2=0.3;
对新种群进行变异操作的具体实施过程如下:
对于ch′1={(3,3),(13,1),(4,4),(5,6),(15,1),(6,5),(8,5),(10,2),(7,4),(1,6),(11,2),(2,3),(12,4),(9,1),(14,4)};
执行步骤G1:随机生成2个[0,1)之间的随机数,其为λ1=0.79、λ2=0.71;
执行步骤G2:由于λ1=0.79>pm1=0.2,则转到步骤G4;
执行步骤G4:由于λ2=0.71>pm2=0.3,则转到步骤G6;
执行步骤G6:变异操作结束;
这样变异后个体ch′1不变;
对于
ch′2={(12,3),(14,6),(1,6),(10,2),(3,2),(4,6),(6,5),(11,3),(7,5),(15,1),(9,1),(13,6),(2,5),(8,4),(5,2)};
执行步骤G1:随机生成2个[0,1)之间的随机数,其为λ1=0.15、λ2=0.23;
执行步骤G2:由于λ1=0.15<pm1=0.2,则转到步骤G3;
执行步骤G3:在个体中随机选择两个基因对,其为(g13,1,g13,2)=(2,5)和(g10,1,g10,2)=(15,1),交换这两个基因对的位置;
执行步骤G4:由于λ2=0.23<pm2=0.3,则转到步骤G5;
执行步骤G5:在个体中随机选择一个基因对,其为(g13,1,g13,2)=(15,1),从
Figure BDA0002311734840000251
中重新随机选择一个虚拟机,其为vm6,g13,2=6;
执行步骤G6:变异操作结束;
这样,变异后的个体变为:
ch′2={(12,3),(14,6),(1,6),(10,2),(3,2),(4,6),(6,5),(11,3),(7,5),(2,5),(9,1),(13,6),(15,6),(8,4),(5,2)};
同理,新种群中的其它个体经变异后变为:
ch′3={(4,4),(5,1),(2,1),(3,5),(6,3),(1,4),(7,2),(8,5),(10,4),(9,5),(11,3),(12,4),(13,6),(14,6),(15,6)};
ch′4={(2,5),(1,6),(3,3),(5,6),(14,4),(4,5),(7,5),(13,1),(8,6),(12,3),(11,3),(6,1),(9,5),(15,1),(10,4)};
ch′5={(13,6),(1,6),(3,2),(5,6),(6,3),(4,5),(7,4),(8,4),(10,2),(9,5),(11,3),(12,4),(2,5),(14,4),(15,1)};
ch′6={(3,3),(13,6),(7,4),(5,6),(15,6),(6,5),(8,5),(10,4),(4,6),(1,6),(11,3),(2,5),(12,3),(9,1),(14,6)};
ch′7={(3,2),(13,6),(4,6),(5,6),(15,1),(6,1),(8,4),(10,2),(2,5),(1,6),(11,6),(14,6),(12,3),(7,2),(9,2)};
ch′8={(2,5),(1,1),(10,4),(4,5),(5,2),(6,5),(8,4),(15,6),(7,4),(12,5),(11,3),(13,6),(3,3),(9,1),(14,4)};
ch′9={(2,5),(1,1),(3,3),(5,2),(6,3),(4,5),(7,5),(8,5),(13,6),(9,2),(11,6),(12,5),(10,4),(14,5),(15,6)};
ch′10={(4,5),(1,6),(10,4),(2,5),(5,6),(6,1),(8,4),(15,6),(14,2),(12,4),(11,3),(13,6),(3,3),(7,2),(9,5)}。
执行步骤8:采用基于插入模式的串行个体解码方法计算新种群中所有个体的适应度值,并用基于负载均衡的个体改进方法对新种群中的所有个体进行改进;
新种群中的所有个体经解码后可得适应度值即工作流响应时间分别为:rs′1=5440.28,rs′2=2195.36,rs′3=1598.20,rs′4=4649.44,rs′5=4125.84,rs′6=1596.60,rs′7=2906.80,rs′8=4234.92,rs′9=3672.84,rs′10=4635.60;
新种群中的所有个体经基于负载均衡的个体改进方法改进后变为:
ch′1={(3,3),(13,1),(4,4),(5,6),(15,1),(6,5),(8,5),(10,2),(7,4),(1,6),(11,2),(2,3),(12,4),(9,5),(14,4)};
ch′2={(12,3),(14,6),(1,6),(10,4),(3,2),(4,6),(6,5),(11,3),(7,5),(2,5),(9,1),(13,6),(15,6),(8,4),(5,2)};
ch′3={(4,4),(5,1),(2,1),(3,5),(6,3),(1,4),(7,2),(8,5),(10,4),(9,5),(11,3),(12,4),(13,6),(14,6),(15,6)};
ch′4={(2,5),(1,6),(3,3),(5,6),(14,4),(4,5),(7,5),(13,1),(8,6),(12,3),(11,3),(6,1),(9,5),(15,1),(10,4)};
ch′5={(13,6),(1,6),(3,2),(5,6),(6,3),(4,5),(7,4),(8,4),(10,2),(9,5),(11,3),(12,4),(2,5),(14,4),(15,1)};
ch′6={(3,3),(13,6),(7,4),(5,6),(15,6),(6,5),(8,5),(10,4),(4,6),(1,6),(11,3),(2,5),(12,3),(9,2),(14,6)};
ch′7={(3,2),(13,6),(4,6),(5,6),(15,1),(6,1),(8,4),(10,2),(2,5),(1,6),(11,6),(14,6),(12,3),(7,4),(9,2)};
ch′8={(2,5),(1,1),(10,4),(4,5),(5,2),(6,5),(8,4),(15,6),(7,4),(12,5),(11,3),(13,6),(3,3),(9,1),(14,6)};
ch′9={(2,5),(1,1),(3,3),(5,2),(6,3),(4,5),(7,5),(8,5),(13,6),(9,2),(11,6),(12,5),(10,4),(14,6),(15,6)};
ch′10={(4,5),(1,6),(10,4),(2,5),(5,6),(6,1),(8,4),(15,6),(14,2),(12,4),(11,3),(13,6),(3,3),(7,2),(9,5)};
其适应度值即工作流响应时间分别为:rs′1=5344.28,rs′2=2067.76,rs′3=1598.20,rs′4=4649.44,rs′5=4125.84,rs′6=1596.60,rs′7=2894.40,rs′8=2268.32,rs′9=2201.64,rs′10=4635.60;
执行步骤9:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群,转到步骤5;
根据适应度值,选择当代种群的ch1、ch2、ch6和新种群的ch′2、ch′3、ch′5、ch′6、ch′7、ch′8、ch′9形成下一代种群,即GP={ch1,ch2,ch6,ch′2,ch′3,ch′5,ch′6,ch′7,ch′8,ch′9};
令CP=GP,则当代种群的所有个体为:
ch1={(2,5),(1,6),(3,3),(5,6),(6,3),(4,5),(7,5),(8,5),(10,4),(9,5),(11,3),(12,4),(13,6),(14,6),(15,6)};
ch2={(3,2),(13,6),(4,6),(5,6),(15,1),(6,5),(8,4),(10,2),(7,4),(1,6),(11,3),(2,5),(12,3),(9,1),(14,4)};
ch3={(4,5),(1,1),(10,4),(2,5),(5,2),(6,1),(8,4),(15,6),(14,6),(12,5),(11,6),(13,6),(3,3),(7,2),(9,2)};
ch4={(12,3),(14,6),(1,6),(10,4),(3,2),(4,6),(6,5),(11,3),(7,5),(2,5),(9,1),(13,6),(15,6),(8,4),(5,2)};
ch5={(4,4),(5,1),(2,1),(3,5),(6,3),(1,4),(7,2),(8,5),(10,4),(9,5),(11,3),(12,4),(13,6),(14,6),(15,6)};
ch6={(13,6),(1,6),(3,2),(5,6),(6,3),(4,5),(7,4),(8,4),(10,2),(9,5),(11,3),(12,4),(2,5),(14,4),(15,1)};
ch7={(3,3),(13,6),(7,4),(5,6),(15,6),(6,5),(8,5),(10,4),(4,6),(1,6),(11,3),(2,5),(12,3),(9,2),(14,6)};
ch8={(3,2),(13,6),(4,6),(5,6),(15,1),(6,1),(8,4),(10,2),(2,5),(1,6),(11,6),(14,6),(12,3),(7,4),(9,2)};
ch9={(2,5),(1,1),(10,4),(4,5),(5,2),(6,5),(8,4),(15,6),(7,4),(12,5),(11,3),(13,6),(3,3),(9,1),(14,6)};
ch10={(2,5),(1,1),(3,3),(5,2),(6,3),(4,5),(7,5),(8,5),(13,6),(9,2),(11,6),(12,5),(10,4),(14,6),(15,6)};
其适应度值即工作流响应时间分别为:rs1=1174.64,rs2=3951.40,rs3=2214.72,rs4=2067.76,rs5=1598.20,rs6=4125.84,rs7=1596.60,rs8=2894.40,rs9=2268.32,rs10=2201.64;
转到步骤5。
……
这样不断重复执行步骤5至步骤9,直至种群迭代50代,当代种群变为:
ch1={(1,6),(2,4),(3,3),(5,6),(4,4),(6,3),(7,5),(8,4),(10,4),(12,4),(11,4),(15,6),(13,6),(14,6),(9,5)};
ch2={(1,6),(2,4),(3,3),(5,6),(4,6),(6,3),(7,5),(8,6),(10,4),(9,5),(11,4),(12,4),(14,6),(13,6),(15,6)};
ch3={(4,5),(1,6),(2,4),(5,6),(7,5),(3,3),(6,3),(8,4),(10,4),(12,4),(11,4),(15,6),(13,6),(14,6),(9,5)};
ch4={(1,6),(2,4),(3,3),(5,6),(4,5),(6,3),(7,5),(8,6),(10,4),(9,5),(11,4),(12,4),(14,6),(13,6),(15,6)};
ch5={(4,5),(1,6),(2,4),(5,6),(15,6),(3,3),(6,3),(7,4),(10,4),(9,5),(11,4),(12,4),(13,6),(14,6),(8,6)};
ch6={(1,6),(2,4),(3,3),(5,6),(4,4),(6,3),(7,5),(8,6),(10,4),(12,4),(11,4),(15,6),(14,6),(13,6),(9,5)};
ch7={(4,5),(1,6),(2,4),(5,6),(7,4),(3,3),(6,3),(14,6),(10,4),(12,4),(11,4),(15,6),(13,6),(8,4),(9,5)};
ch8={(11,4),(1,6),(2,4),(5,6),(15,6),(3,3),(6,3),(7,4),(10,4),(9,5),(4,5),(12,4),(13,6),(14,6),(8,6)};
ch9={(1,6),(2,4),(3,3),(9,4),(4,5),(6,3),(7,5),(8,5),(10,4),(11,3),(12,4),(15,6),(14,6),(13,6),(5,6)};
ch10={(1,6),(2,4),(3,3),(5,6),(4,5),(6,3),(7,5),(8,5),(10,4),(9,5),(11,4),(12,4),(14,6),(13,6),(15,6)};
其适应度值即工作流响应时间分别为:rs1=1029.96,rs2=1026.96,rs3=1019.72,rs4=1019.28,rs5=1032.16,rs6=1029.52,rs7=1030.60,rs8=1032.16,rs9=1033.88,rs10=1018.08。
执行步骤10:输出当代种群中的最优个体,其对应的调度方案即为优化方案。
当代种群中的最优个体为ch10={(1,6),(2,4),(3,3),(5,6),(4,5),(6,3),(7,5),(8,5),(10,4),(9,5),(11,4),(12,4),(14,6),(13,6),(15,6)},工作流响应时间rs10=1018.08,其调度方案如表8所示。
调度顺序 任务编号 开始时间 执行时间 结束时间 虚拟机编号
1 1 0.00 129.12 129.12 6
2 2 0.00 185.16 185.16 4
3 3 0.00 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
表8
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。

Claims (3)

1.一种使用二维定长编码智能计算算法的云工作流调度优化方法,其特征在于:包括以下步骤:
步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,...,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;
获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,I;
Figure FDA0002311734830000011
获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
Figure FDA0002311734830000012
获取云计算环境下的虚拟机集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 FDA0002311734830000013
需要从共享数据库获得输入文件的平均传输时间
Figure FDA0002311734830000014
需要从其它虚拟机获得输入文件的平均传输时间
Figure FDA0002311734830000015
ti执行时的平均处理时间计算如下:
Figure FDA0002311734830000016
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
Figure FDA0002311734830000021
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
Figure FDA0002311734830000022
其中
Figure FDA0002311734830000023
Figure FDA0002311734830000024
和ti间的文件平均传输时间,其计算如下:
Figure FDA0002311734830000025
然后自下而上计算任务的排序值rank,其计算过程如下:
对于没有子任务的结束任务i:
Figure FDA0002311734830000026
其它任务的排序值rank采用如下递归公式进行计算:
Figure FDA0002311734830000027
rank越大则任务的优先级越高;
步骤3:初始化当代种群;
基于HEFT生成1个个体,然后采用个体随机生成操作生成剩余的N-1个不同个体,形成当代初始种群,其中N是种群规模,为偶数;
所述个体采用二维定长编码,其方法如下:ch={(g1,1,g1,2),…,(gI,1,gI,2)},其中I是任务的数量,基因对(gi,1,gi,2)是一对任务和虚拟机编号,其中gi,1是任务编号,gi,2虚拟机编号,表示任务gi,1是分配给虚拟机gi,2处理的;
所述基于HEFT生成1个个体包括如下步骤:
步骤A1:令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,其中M为一个接近无穷大的数;令所有任务的就绪时间rti=0,i=1,…,I;令变量k=1;令任务集UT=T;
步骤A2:从UT中取出一个rank最大的任务,不妨设为ti
步骤A3:令AVMi=VMi,计算把ti分别分配给AVMi中的每个虚拟机后ti的开始时间和完成时间:
步骤A3.1:从AVMi中取出一个虚拟机,不妨设为vmj
步骤A3.2:计算ti分配给vmj处理后的执行时间
Figure FDA0002311734830000031
步骤A3.3:在vatlj中从早到晚找出一个空闲时段[νjj],满足υjj≥eti,j和υj-eti,j≥rti
步骤A3.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rti},完成时间fi,j=si,j+eti,j
步骤A3.5:若AVMi不为空,则转到步骤A3.1,否则转到步骤A4;
步骤A4:按虚拟机顺序找出能最早完成ti的虚拟机,不妨设为vmj,(gk,1,gk,2)=(i,j),把ti分配给vmj
步骤A4.1:令ti的开始时间si=si,j,ti的完成时间fi=fi,j
步骤A4.2:更新ti的子任务的就绪时间
Figure FDA0002311734830000032
步骤A4.3:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤A5:若UT不为空,则k=k+1,转到步骤A2,否则转到步骤A6;
步骤A6:获得一个基于HEFT的个体ch={(g1,1,g1,2),…,(gI,1,gI,2)},计算其适应度值,操作结束;
其中:
ωi,j:是vmj处理ti的时间,
Figure FDA0002311734830000033
Figure FDA0002311734830000034
是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,
Figure FDA0002311734830000035
Figure FDA0002311734830000036
是处理
Figure FDA0002311734830000037
的虚拟机;
τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,
Figure FDA0002311734830000041
所述个体随机生成操作包括如下步骤:
步骤B1:令变量k=1,令任务集UT=T;
步骤B2:从UT中随机选择一个任务,不妨设为ti
步骤B3:从VMi中随机选择一个虚拟机,不妨设为vmj
步骤B4:令(gk,1,gk,2)=(i,j),从UT中删除ti
步骤B5:k=k+1,如果k≤I,那么转到步骤B2;否则转到步骤B6;
步骤B6:输出一个个体ch={(g1,1,g1,2),…,(gI,1,gI,2)},操作结束;
步骤4:采用基于插入模式的串行个体解码方法计算当代初始种群中所有随机生成个体的适应度值,并用基于负载均衡的个体改进方法对当代初始种群中的所有个体进行改进;
所述基于插入模式的串行个体解码方法包括如下步骤:
步骤C1:初始化系统状态:令所有虚拟机可得时间段列表vatlj={[0,M]},j=1,…,J,其中M为一个接近无穷大的数;令所有任务的就绪时间rti=0,令任务集P(ti)=PRi,i=1,2,…,I;令任务集
Figure FDA0002311734830000042
UT=T;把UT中
Figure FDA0002311734830000043
的ti移到RT中;
步骤C2:在个体基因对中从前向后选出一个其任务在RT中存在的,不妨设为(gk,1,gk,2);
步骤C3:把任务i=gk,1分配给虚拟机j=gk,2
步骤C3.1:计算ti的执行时间
Figure FDA0002311734830000044
步骤C3.2:在vatlj中从早到晚找出一个空闲时段[νjj],满足υjj≥eti和υj-eti≥rti
步骤C3.3:ti的开始时间si=max{νj,rti},ti的完成时间fi=si+eti
步骤C3.4:更新ti的子任务的就绪时间
Figure FDA0002311734830000045
步骤C3.5:在虚拟机可得时间段列表vatlj中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤C4:在所有
Figure FDA0002311734830000046
中删除ti
Figure FDA0002311734830000047
在RT中删除ti;把UT中
Figure FDA0002311734830000048
Figure FDA0002311734830000049
移到RT中;如果RT不为空,则转到步骤C2,否则转到步骤C5;
步骤C5:获得所有任务的完成时间fi,计算其适应度值,操作结束;
所述基于负载均衡的个体改进方法包括如下步骤:
步骤D1:计算各虚拟机负载
Figure FDA0002311734830000051
步骤D2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤D3,否则转到步骤D4;
步骤D3:令任务集
Figure FDA0002311734830000052
转到步骤D5;
步骤D4:令任务集STj′=Tj′,转到步骤D5;
步骤D5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机的负载是最高的任务i′,转到步骤D6;否则转到步骤D7;
步骤D6:把任务i′分配给虚拟机j′,即使gk,1=i′的gk,2等于j′,形成新个体,采用基于插入模式的串行个体解码方法对新个体进行解码,如果相对于原个体有改进,则用新个体替换原个体,转到步骤D7;否则转到步骤D5;
步骤D7:操作结束;
步骤5:判断是否满足终止条件,如满足,则进化结束转到步骤10,否则转到步骤6;
所述终止条件可以为迭代到指定的代数TG或连续迭代GG代最优个体没有改进;
步骤6:对当代种群上进行N/2次交叉操作,形成新种群;
每次交叉操作随机选择循环交叉操作和虚拟机交叉操作中的一种进行;
所述循环交叉操作包括如下步骤:
步骤E1:基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2,不妨设父体1为
Figure FDA0002311734830000053
父体2为
Figure FDA0002311734830000054
步骤E2:初始化交叉点集
Figure FDA0002311734830000055
随机产生一个交叉位置α,CP=CP∪{α},令变量
Figure FDA0002311734830000056
步骤E3:如果
Figure FDA0002311734830000057
转到步骤E4,否则转到步骤E5;
步骤E4:在父体1中找出
Figure FDA0002311734830000058
的基因对作为下一个交叉位置β,CP=CP∪{β},
Figure FDA0002311734830000059
转到步骤E3;
步骤E5:如果|CP|=I或|CP|=1,则转步骤E2;否则交换所有i∈CP位置上的基因对,生成两个新个体,操作结束;
所述虚拟机交叉操作包括如下步骤:
步骤F1:基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2;
步骤F2:随机选择1~I个任务;在父体1和父体2中交换这些任务的虚拟机分配生成两个新个体,操作结束;
循环交叉操作可以产生新的任务调度顺序和虚拟机分配方案,而虚拟机交叉操作不产生新的任务调度顺序但可以产生新的虚拟机分配方案;
步骤7:对新种群中的每个个体进行变异操作;
所述变异操作包括如下步骤:
步骤G1:生成2个[0,1)之间的随机数:λ1,λ2
步骤G2:如果λ1≤pm1,则转到步骤G3,否则转到步骤G4;
步骤G3:在个体中随机选择2个基因对,交换它们的位置;
步骤G4:如果λ2≤pm2,则转到步骤G5,否则转到步骤G6;
步骤G5:在个体中随机选择1个基因对,不妨设为(gi,1,gi,2),从VMgi,1中重新随机选择1个虚拟机,不妨设为vmj,gi,2=j;
步骤G6:变异操作结束;
其中:pm1,pm2∈(0,1]分别是调度顺序变异率和虚拟机分配变异率;
步骤8:采用基于插入模式的串行个体解码方法计算新种群中所有个体的适应度值,并用基于负载均衡的个体改进方法对新种群中的所有个体进行改进;
步骤9:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群,转到步骤5;
步骤10:输出当代种群中的最优个体,其对应的调度方案即为优化方案。
2.根据权利要求1所述的一种使用二维定长编码智能计算算法的云工作流调度优化方法,其特征在于:所述适应度值为工作流响应时间rs,其计算方法如下:
Figure FDA0002311734830000061
其中:rfi是任务i的响应时间,
Figure FDA0002311734830000062
SFLi是任务i输出给共享数据库的输出文件集,即
Figure FDA0002311734830000071
j是处理任务i的虚拟机编号,即j=gi′,2,而gi′,1=i;
适应度值越小,个体越优。
3.根据权利要求1所述的一种使用二维定长编码智能计算算法的云工作流调度优化方法,其特征在于:所述步骤E1和步骤F1中采用基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2的具体步骤如下:
步骤H1:对当代种群中的个体按优到劣即适应度值从小到大进行排序,获得个体n的排序值rkn,n=1,…,N,其中排第一的其取1,排第二的其取2,以此类推,排最后一名的其取N;
步骤H2:计算个体n被选中的概率
Figure FDA0002311734830000072
R>1为区分度系数;
步骤H3:计算累计概率
Figure FDA0002311734830000073
步骤H4:产生一个随机数λ1∈[0,1),如果
Figure FDA0002311734830000074
那么选择个体n作为父体1;
步骤H5:产生一个随机数λ2∈[0,1),如果
Figure FDA0002311734830000075
并且n′≠n,那么选择个体n′作为父体2,转到步骤H6,否则转到步骤H5;
步骤H6:个体选择操作结束。
CN201911261557.XA 2019-12-10 2019-12-10 使用二维定长编码智能计算算法的云工作流调度优化方法 Withdrawn CN110991758A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911261557.XA CN110991758A (zh) 2019-12-10 2019-12-10 使用二维定长编码智能计算算法的云工作流调度优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911261557.XA CN110991758A (zh) 2019-12-10 2019-12-10 使用二维定长编码智能计算算法的云工作流调度优化方法

Publications (1)

Publication Number Publication Date
CN110991758A true CN110991758A (zh) 2020-04-10

Family

ID=70091998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911261557.XA Withdrawn CN110991758A (zh) 2019-12-10 2019-12-10 使用二维定长编码智能计算算法的云工作流调度优化方法

Country Status (1)

Country Link
CN (1) CN110991758A (zh)

Similar Documents

Publication Publication Date Title
CN107679750B (zh) 一种基于自适应系数遗传算法的云制造服务资源匹配方法
US20180357610A1 (en) Method and system for collaborative scheduling of production and transportation based on shuffled frog leaping and path relinking algorithms
CN112685138B (zh) 云环境下基于多种群混合智能优化的多工作流调度方法
CN109522104B (zh) 利用差分进化算法优化Iaas两目标任务调度的方法
CN105094970B (zh) 一种求解分布式系统下可分任务多趟调度模型的方法
CN110928648B (zh) 融合启发式和智能计算的云工作流分段在线调度优化方法
CN110780985A (zh) 一种有限时间的并行任务调度方法与装置
CN111126800A (zh) 使用分层自适应智能算法的多模资源受限项目调度方法
CN111090510A (zh) 混合启发式和遗传算法的两阶段云工作流调度优化方法
CN111026534B (zh) 云计算环境下基于多种群遗传算法的工作流执行优化方法
CN111008745A (zh) 混合启发式与智能算法的多模资源受限项目调度优化方法
CN110928670B (zh) 云计算环境下基于偏序自适应遗传算法的工作流优化方法
CN110991917B (zh) 采用两阶段遗传算法的多模资源受限项目调度优化方法
CN111078361A (zh) 基于分布式估计算法的云工作流调度优化方法
CN110991758A (zh) 使用二维定长编码智能计算算法的云工作流调度优化方法
CN111047183A (zh) 基于分层自适应智能计算算法的云工作流调度优化方法
CN110941487B (zh) 云计算环境下基于多阶段遗传算法的工作流调度优化方法
CN110928671B (zh) 基于层次与负载均衡遗传算法的云工作流调度优化方法
CN111061563A (zh) 云计算环境下基于多解码遗传算法的工作流调度优化方法
CN111026506A (zh) 采用多种群协同进化遗传算法的云工作流调度优化方法
CN111078381A (zh) 基于二维编码遗传算法的云工作流调度优化方法
CN110928669B (zh) 基于多种群遗传算法的能耗感知云工作流调度优化方法
CN111026533A (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: 20200410

WW01 Invention patent application withdrawn after publication