CN110991758A - 使用二维定长编码智能计算算法的云工作流调度优化方法 - Google Patents
使用二维定长编码智能计算算法的云工作流调度优化方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow 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的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
获取云计算环境下的虚拟机集VM={vm1,vm2,…,vmJ},其中J是虚拟机的数量,vmj表示虚拟机j,即编号为j的虚拟机;
获取虚拟机相关参数:虚拟机j的计算能力vmj.ps,虚拟机j的带宽vmj.bw,其中j=1,2…,J;
获取任务与虚拟机之间的支持关系:虚拟机j可以处理的任务集Tj,其中j=1,2…,J;可以处理任务i的虚拟机集VMi,其中i=1,2…,I;
步骤2:计算任务的排序值rank;
ti执行时的平均处理时间计算如下:
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
然后自下而上计算任务的排序值rank,其计算过程如下:
对于没有子任务的结束任务i:
其它任务的排序值rank采用如下递归公式进行计算:
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.3:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti,j和υj-eti,j≥rti;
步骤A3.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rti},完成时间fi,j=si,j+eti,j;
步骤A3.5:若AVMi不为空,则转到步骤A3.1,否则转到步骤A4;
步骤A4:按虚拟机顺序找出能最早完成ti的虚拟机,不妨设为vmj,(gk,1,gk,2)=(i,j),把ti分配给vmj:
步骤A4.1:令ti的开始时间si=si,j,ti的完成时间fi=fi,j;
步骤A4.3:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤A5:若UT不为空,则k=k+1,转到步骤A2,否则转到步骤A6;
步骤A6:获得一个基于HEFT的个体ch={(g1,1,g1,2),…,(gI,1,gI,2)},计算其适应度值,操作结束;
其中:
所述个体随机生成操作包括如下步骤:
步骤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;令任务集UT=T;把UT中的ti移到RT中;
步骤C2:在个体基因对中从前向后选出一个其任务在RT中存在的,不妨设为(gk,1,gk,2);
步骤C3:把任务i=gk,1分配给虚拟机j=gk,2:
步骤C3.2:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和υj-eti≥rti;
步骤C3.3:ti的开始时间si=max{νj,rti},ti的完成时间fi=si+eti;
步骤C3.5:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤C5:获得所有任务的完成时间fi,计算其适应度值,操作结束;
所述基于负载均衡的个体改进方法包括如下步骤:
步骤D2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤D3,否则转到步骤D4;
步骤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次交叉操作,形成新种群;
每次交叉操作随机选择循环交叉操作和虚拟机交叉操作中的一种进行;
所述循环交叉操作包括如下步骤:
步骤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;
步骤G6:变异操作结束;
其中:pm1,pm2∈(0,1]分别是调度顺序变异率和虚拟机分配变异率;
步骤8:采用基于插入模式的串行个体解码方法计算新种群中所有个体的适应度值,并用基于负载均衡的个体改进方法对新种群中的所有个体进行改进;
步骤9:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群,转到步骤5;
步骤10:输出当代种群中的最优个体,其对应的调度方案即为优化方案。
适应度值越小,个体越优。
进一步的,所述步骤E1和步骤F1中采用基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2的具体步骤如下:
步骤H1:对当代种群中的个体按优到劣即适应度值从小到大进行排序,获得个体n的排序值rkn,n=1,…,N,其中排第一的其取1,排第二的其取2,以此类推,排最后一名的其取N;
步骤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
表2
针对上述案例,如图1所示,一种使用二维定长编码智能计算算法的云工作流调度优化方法,包括以下实施步骤:
执行步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
获取任务间的时序关系,即任务i的父任务集PRi和子任务集SCi: PR4={t1},PR5={t1,t2},PR6={t1,t3},PR7={t4,t5,t6},PR8={t7},PR9={t1,t8},PR10={t2,t8},PR11={t3,t8},PR12={t9,t10,t11},PR13={t12},PR14={t13},PR15={t14};SC1={t4,t5,t6,t9},SC2={t5,t10},SC3={t6,t11},SC4={t7},SC5={t7},SC6={t7},SC7={t8},SC8={t9,t10,t11},SC9={t12},SC10={t12},SC11={t12},SC12={t13},SC13={t14},SC14={t15},
获取任务的相关参数:t1.length=126000MI,t1.IFL={fd1,fd2},t1.OFL={f1-1,f1-2};t2.length=138000MI,t2.IFL={fd1,fd3},t2.OFL={f2-1,f2-2};t3.length=132000MI,t3.IFL={fd1,fd4},t3.OFL={f3-1,f3-2};t4.length=102000MI,t4.IFL={fd1,f1-1,f1-2},t4.OFL={f4-1,f4-2};……;t15.length=7800MI,t15.IFL={f14-1},t15.OFL={f15-1};fd1.size=36MB,fd2.size=4320MB,f1-1.size=3960MB,f1-2.size=3960MB,……,f14-1.size=1560MB,f15-1.size=420MB;
获取云计算环境下的虚拟机集:VM={vm1,vm2,vm3,vm4,vm5,vm6};
获取虚拟机相关参数:vm1.ps=1000MI/s,vm1.bw=200Mbit/s;vm2.ps=1000MI/s,vm2.bw=200Mbit/s;vm3.ps=2000MI/s,vm3.bw=300Mbit/s;vm4.ps=2000MI/s,vm4.bw=300Mbit/s;vm5.ps=3000MI/s,vm5.bw=400Mbit/s;vm6.ps=3000MI/s,vm6.bw=400Mbit/s;
获取任务与虚拟机之间的支持关系:T1={t1,t2,t3,t4,t5,t6,t9,t13,t15},T2={t3,t5,t7,t9,t10,t11,t14},T3={t2,t3,t4,t6,t9,t11,t12},T4={t1,t2,t4,t6,t7,t8,t9,t10,t11,t12,t14},T5={t1,t2,t3,t4,t6,t7,t8,t9,t12,t14},T6={t1,t4,t5,t8,t11,t13,t14,t15};VM1={vm1,vm4,vm5,vm6},VM2={vm1,vm3,vm4,vm5},VM3={vm1,vm2,vm3,vm5},VM4={vm1,vm3,vm4,vm5,vm6},VM5={vm1,vm2,vm6},VM6={vm1,vm3,vm4,vm5},VM7={vm2,vm4,vm5},VM8={vm4,vm5,vm6},VM9={vm1,vm2,vm3,vm4,vm5},VM10={vm2,vm4},VM11={vm2,vm3,vm4,vm6},VM12={vm3,vm4,vm5},VM13={vm1,vm6},VM14={vm2,vm4,vm5,vm6},VM15={vm1,vm6}。
执行步骤2:计算任务的排序值rank;
表3
表4
同理可得其它任务间的文件平均传输时间,结果如表5所示:
表5
表6
计算任务i的ranki:
同理可得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,τ2,1=8×(36+4320)/200=174.24,则执行步骤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,τ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,τ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;
……
执行步骤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:由于而SFL15={f15-1},故操作结束;
基于个体随机生成操作生成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;P(t4)={t1},P(t5)={t1,t2},P(t6)={t1,t3},P(t7)={t4,t5,t6},P(t8)={t7},P(t9)={t1,t8},P(t10)={t2,t8},P(t11)={t3,t8},P(t12)={t9,t10,t11},P(t13)={t12},P(t14)={t13},P(t15)={t14};UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};把UT中的任务,即t1、t2、t3移到RT中,则RT={t1,t2,t3},UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
执行步骤C2:在个体ch9的基因对中从前向后选出一个任务在RT={t1,t2,t3}中存在的,其为(1,6);
执行步骤C3:基于插入模式把任务1分配给虚拟机6;即执行步骤C3.1:计算t1的执行时间:ω1,6=126000/3000=42,τ1,6=8×(36+4320)/400=87.12,则执行步骤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,则P(t5)={t2},P(t6)={t3},P(t9)={t8},在RT中删除t1,则RT={t2,t3};由于故把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,τ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中不存在的任务,则RT,UT均不变;由于RT={t2,t3}不为空,则转到步骤C2;
执行步骤C2:在个体ch9的基因对中从前向后选出一个任务在RT={t2,t3}中存在的,其为(3,3);
执行步骤C3:基于插入模式把任务3分配给虚拟机3;即执行步骤C3.1:计算t3的执行时间:ω3,3=66,τ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,则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;
……
执行步骤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:由于而SFL15={f15-1},故操作结束;
同理,经解码后可得其它个体的适应度值即工作流响应时间分别为: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)}采用基于负载均衡的个体改进方法进行改进的具体实施过程如下:
执行步骤D2:找出负载最小的虚拟机,其为vm5,由于ld5=38.8>0,故转到步骤D3;
执行步骤D5:由于ST5={t1,t4,t6,t8,t12}不为空,则从ST5中按顺序取出一个其所在虚拟机负载是最高的任务,其为t6,转到步骤D6;
执行步骤D6:把任务6分配给虚拟机5,形成新个体采用基于插入模式的串行个体解码方法对新个体进行解码,可得其适应度值即工作流响应时间为由于即新个体相较于原个体ch9有改进,因此用新个体替换原个体ch9,则 转到步骤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被选中的概率同理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:计算累计概率: 执行步骤H4:产生一个[0,1)的随机数λ1,其为0.157,由于因此选择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,由于并且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)};
执行步骤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;
执行步骤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的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
获取云计算环境下的虚拟机集VM={vm1,vm2,…,vmJ},其中J是虚拟机的数量,vmj表示虚拟机j,即编号为j的虚拟机;
获取虚拟机相关参数:虚拟机j的计算能力vmj.ps,虚拟机j的带宽vmj.bw,其中j=1,2…,J;
获取任务与虚拟机之间的支持关系:虚拟机j可以处理的任务集Tj,其中j=1,2…,J;可以处理任务i的虚拟机集VMi,其中i=1,2…,I;
步骤2:计算任务的排序值rank;
ti执行时的平均处理时间计算如下:
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
然后自下而上计算任务的排序值rank,其计算过程如下:
对于没有子任务的结束任务i:
其它任务的排序值rank采用如下递归公式进行计算:
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.3:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti,j和υj-eti,j≥rti;
步骤A3.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rti},完成时间fi,j=si,j+eti,j;
步骤A3.5:若AVMi不为空,则转到步骤A3.1,否则转到步骤A4;
步骤A4:按虚拟机顺序找出能最早完成ti的虚拟机,不妨设为vmj,(gk,1,gk,2)=(i,j),把ti分配给vmj:
步骤A4.1:令ti的开始时间si=si,j,ti的完成时间fi=fi,j;
步骤A4.3:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤A5:若UT不为空,则k=k+1,转到步骤A2,否则转到步骤A6;
步骤A6:获得一个基于HEFT的个体ch={(g1,1,g1,2),…,(gI,1,gI,2)},计算其适应度值,操作结束;
其中:
τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,
所述个体随机生成操作包括如下步骤:
步骤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;令任务集UT=T;把UT中的ti移到RT中;
步骤C2:在个体基因对中从前向后选出一个其任务在RT中存在的,不妨设为(gk,1,gk,2);
步骤C3:把任务i=gk,1分配给虚拟机j=gk,2:
步骤C3.2:在vatlj中从早到晚找出一个空闲时段[νj,υj],满足υj-νj≥eti和υj-eti≥rti;
步骤C3.3:ti的开始时间si=max{νj,rti},ti的完成时间fi=si+eti;
步骤C3.5:在虚拟机可得时间段列表vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤C5:获得所有任务的完成时间fi,计算其适应度值,操作结束;
所述基于负载均衡的个体改进方法包括如下步骤:
步骤D2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤D3,否则转到步骤D4;
步骤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次交叉操作,形成新种群;
每次交叉操作随机选择循环交叉操作和虚拟机交叉操作中的一种进行;
所述循环交叉操作包括如下步骤:
步骤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:输出当代种群中的最优个体,其对应的调度方案即为优化方案。
3.根据权利要求1所述的一种使用二维定长编码智能计算算法的云工作流调度优化方法,其特征在于:所述步骤E1和步骤F1中采用基于排序的轮赌法从当代种群中选择两个不同的个体作为父体1和父体2的具体步骤如下:
步骤H1:对当代种群中的个体按优到劣即适应度值从小到大进行排序,获得个体n的排序值rkn,n=1,…,N,其中排第一的其取1,排第二的其取2,以此类推,排最后一名的其取N;
步骤H6:个体选择操作结束。
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) |
-
2019
- 2019-12-10 CN CN201911261557.XA patent/CN110991758A/zh not_active Withdrawn
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 |