CN110990125A - 使用二维两阶段智能计算算法的云工作流调度优化方法 - Google Patents
使用二维两阶段智能计算算法的云工作流调度优化方法 Download PDFInfo
- Publication number
- CN110990125A CN110990125A CN201911259908.3A CN201911259908A CN110990125A CN 110990125 A CN110990125 A CN 110990125A CN 201911259908 A CN201911259908 A CN 201911259908A CN 110990125 A CN110990125 A CN 110990125A
- Authority
- CN
- China
- Prior art keywords
- task
- virtual machine
- individual
- population
- randomly
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种使用二维两阶段智能计算算法的云工作流调度优化方法,包括以下步骤:获取调度优化所需信息;计算任务层次值;基于层次初始化当代种群;分两阶段进行智能适应性进化:阶段1在满足层次编码的个体中进行搜索使算法尽快收敛于最优解附近,阶段2则在阶段1的基础上采用基于全域的拓展搜索以找到更好的解;输出调度优化方案;同时在进化中采用了按虚拟机对任务调度顺序进行拓扑排序的二维整数编码方法、基于插入模式的串行解码方法、FBI&D和LDI改进策略。本发明能有效减少编码空间,同时相对于单阶段方法具有更高的搜索效率。
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:计算任务的层次值;
对于没有父任务的开始任务i,其层次值为:
leveli=1 (1)
其它任务的层次值采用如下递归公式进行计算:
步骤3:初始化当代种群;
采用基于层次的个体随机生成方法生成N个不同的个体形成当代初始种群,其中N为种群规模,且为偶数;
所述个体采用二维整数编码,其方法如下:其中gj,i表示分配给虚拟机j的并在虚拟机j中是第i个被调度的任务的编号,例如g3,2=5表示任务5是分配给虚拟机3的,并在分配给虚拟机3的所有任务中是第2个被调度的;是分配给虚拟机j的任务编号的一个排序,且满足任务时序约束,Ij表示分配给虚拟机j的任务数量;
vmj处理ti的时间ωi,j计算如下:
把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间τi,j计算如下:
所述个体的适应度值为工作流执行时间,适应度值越小个体越优;
步骤5:对当代种群进行N/2次二维层次交叉操作,形成新种群;
步骤6:对新种群的每个个体进行二维层次变异操作;
步骤8:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群;
步骤9:判断是否满足第一阶段终止条件,如满足,则第一阶段进化结束转到步骤10,否则转到步骤5;
所述第一阶段终止条件为迭代到指定的代数TG1或连续迭代GG1代最优个体没有改进;
步骤10:对当代种群进行N/2次二维拓扑排序交叉操作,形成新种群;
所述二维拓扑排序交叉操作包括如下步骤:
步骤E3:分别随机选择一个不为空且编号为其首元素的任务不存在父任务或其父任务都已在FT1、FT2中的分别从中取出首元素i′,i″;然后分别把i′,i″添加到的尾部;FT1=FT1∪i′,FT2=FT2∪i″;
步骤E4:α=α-1,如果α>0,则转到步骤E3,否则转到步骤E5;
步骤E7:输出chc1,chc2,操作结束;
采用锦标赛法从当代种群中随机选择1个个体的过程描述如下:首先从当代种群中随机选择两个不同个体,然后比较这两个个体的适应度值,去掉差的个体,保留优的个体;
步骤11:对新种群中的每个个体进行二维拓扑排序变异操作;
所述二维拓扑排序变异操作包括如下步骤:
步骤F1:随机生成一个随机数λ∈(0,1);如果λ≤pm,则转到步骤F2,否则转到步骤F5;
步骤F2:随机选择一个任务编号i,并在个体中删除值为i的基因;
步骤F3:在VMi中重新随机选择一个虚拟机,不妨设为虚拟机j;
步骤F4:在中从前向后寻找任务i的最后一个祖先任务编号和第一个子孙任务编号,如果都找到,那么在最后一个祖先任务编号和第一个子孙任务编号之间随机找一个位置插入i;如果子孙任务编号不存在而祖先任务编号存在,那么在最后一个祖先任务编号之后随机找一个位置插入i;如果子孙任务编号存在而祖先任务编号不存在,那么在第一个子孙任务编号之前随机找一个位置插入i;如果子孙任务编号和祖先任务编号都不存在,那么随机找一个位置插入i;
步骤F5:个体变异操作结束;
其中,pm∈(0,1]是变异率;
步骤12:采用FBI&D和LDI方法改进新种群中的所有个体并计算其适应度值;
所述FBI&D方法包括如下步骤:
步骤G2:令变量k=1,采用基于插入模式的串行个体解码方法对个体ch进行解码,获得所有任务的完成时间fi,i=1,…,I,及工作流的执行时间ms=max{f1,…,fI};
所述LDI方法包括如下步骤:
步骤H2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤H3,否则转到步骤H4;
步骤H4:令任务集STj′=Tj′,转到步骤H5;
步骤H5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机j″的负载是最高的任务i′,转到步骤H6;否则转到步骤H7;
步骤H6:在中从前向后寻找任务i′的最后一个祖先任务编号和第一个子孙任务编号,如果都找到,那么在最后一个祖先任务编号和第一个子孙任务编号之间随机找一个位置插入i′;如果子孙任务编号不存在而祖先任务编号存在,那么在最后一个祖先任务编号之后随机找一个位置插入i′;如果子孙任务编号存在而祖先任务编号不存在,那么在第一个子孙任务编号之前随机找一个位置插入i′;如果子孙任务编号和祖先任务编号都不存在,那么随机找一个位置插入i′;在中删除i′,形成新个体,采用FBI&D方法对新个体进行解码改进,如果有改进则用此改进的个体替换原个体,转到步骤H7;否则转到步骤H5;
步骤H7:LDI操作结束;
步骤13:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群;
步骤14:判断是否满足第二阶段终止条件,如满足,则第二阶段进化结束转到步骤15,否则转到步骤10;
所述第二阶段终止条件为迭代到指定的代数TG2或连续迭代GG2代最优个体没有改进;
步骤15:输出当代种群中的最优个体,其对应的调度方案为优化方案。
进一步的,所述步骤3中基于层次的个体随机生成方法的具体步骤如下:
步骤A1:令待处理的任务集UT=T;令变量kj=1,j=1,2,…,J;
步骤A2:从UT中随机取出一个层次值最小的任务,不妨设为ti;
步骤A3:从VMi中随机选择一个虚拟机,不妨设为vmj;
步骤A5:如果UT不为空,那么转到步骤A2;否则转到步骤A6;
进一步的,所述步骤4、步骤7、步骤G2、步骤G4中基于插入模式的串行个体解码方法的具体步骤如下:
步骤B2:按虚拟机编号顺序选择一个不为空的且编号为首元素的任务不存在父任务或其父任务都已被调度的VTIj,从VTIj中取出首元素,不妨设为i;
步骤B3:基于插入模式把任务i分配给虚拟机j;
步骤B3.1:在vatlj中从早到晚找出一个空闲时段[νj,υj]满足υj-νj≥eti和υj-eti≥rti;
步骤B3.3:在vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤B4:如果VTIj不全为空,则转到步骤B2,否则转到步骤B5;
步骤B5:输出工作流执行时间ms=max{f1,…,fI},si、fi,i=1,…,I,操作结束。
进一步的,所述步骤5中二维层次交叉操作的具体步骤如下:
步骤C2:随机选择一个交叉点cs,1≤cs≤max{level1,…,levelI}-1;
进一步的,所述步骤6中二维层次变异操作的具体步骤如下:
步骤D1:随机生成1个随机数λ∈[0,1);如果λ≤pm,则转到步骤D2,否则转到步骤D5;
步骤D2:随机选择一个任务编号i,并在个体中删除值为i的基因;
步骤D3:在VMi中随机选择一个虚拟机,不妨设为虚拟机j;
步骤D4:在中从后向前寻找层次值小于任务i的第一个任务编号i′,从前向后寻找层次值大于任务i的第一个任务编号i″;如果i′和i″都存在,那么在i′和i″之间随机找一个位置插入i;如果i′存在而i″不存在,那么在i′之后随机找一个位置插入i;如果i′不存在而i″存在,那么在i″之前随机找一个位置插入i;如果i′和i″都不存在,那么随机找一个位置插入i;
步骤D5:个体变异操作结束;
其中:pm∈[0,1)是变异率。
本发明的有益效果在于:
(1)相对于启发式方法、结合启发式的半智能计算方法及现有的基于分层编码的智能计算方法,本发明设计采用的二维编码方法,任何一个调度方案都可以有一个个体与之对应,因此其搜索空间是完备的,可以实现全域搜索。
(2)相对于一般的基于优先级的编码方式,本发明采用的按虚拟机对任务调度顺序进行拓扑排序的二维整数编码方法,考虑了有资源竞争关系的任务之间的时序关系,这样解码方法就比较简单,能有效提高解码的效率,进而提高了算法的整体效率。
(3)相对于现有的采用虚拟机分配列表和任务调度顺序列表的两段式一维编码方法,本发明采用的按虚拟机对任务调度顺序进行拓扑排序的二维整数编码方法,只对分配给同一个虚拟机内有资源竞争冲突的任务进行了调度顺序的限制,这样相对于采用虚拟机分配列表和任务调度顺序列表的两段式一维编码方法可以有效减少编码空间,例如一个云工作流中有3个可以并行的任务,如果采用虚拟机分配列表和任务调度顺序列表的两段式一维编码方法,就任务调度顺序列表部分这3个任务间的拓扑排序就有6种,但如果这3个任务是分配给3个不同的虚拟机的,那么这6种拓扑排序对应的调度方案就是同一个,而采用本发明的编码方法,则只有一个编码方案,这样采用本发明的二维编码方法相对于两段式一维编码方法可以减少算法的编码空间,提高了算法的搜索效率。
(4)相对于传统的非插入模式和并行的解码方法,本发明设计采用的基于插入模式的尽可能早地安排任务执行的串行个体解码方法通常能找到更好的对应调度方案。
(5)相对于普通的单向解码方法,本发明设计采用的向前向后的个体解码与改进策略FBI&D和考虑了传输时间的负载均衡策略LDI增强了个体的邻域寻优能力,从而能提高整个算法的寻优能力和搜索效率。
(6)相对于传统的随机初始化方法,本发明采用了基于层次的个体随机生成方法,这样可以使算法可以在最优方案附近开始搜索,从而缩短算法的收敛时间。
(7)针对提出的二维整数编码方法,本发明设计了一些新的交叉和变异方法,如果父体是有效合法的,那么用该方法能确保生成的子体也是有效的合法的。
(8)本发明采用两阶段的智能适应性进化策略,第一阶段在满足层次编码的个体中进行搜索可以使算法尽快收敛于最优解附近,而第二阶段则在第一阶段的基础上再采用基于全域的拓展搜索,以便找到更好的个体,因此相对于现有的单阶段搜索算法具有更高的搜索效率和更强的寻优能力。
附图说明
图1是本发明一种使用二维两阶段智能计算算法的云工作流调度优化方法的流程示意图。
图2是本发明实施例中CyberShake工作流任务间的时序关系图。
具体实施方式
下面结合图1、图2及实施例对本发明做进一步详细说明,但本发明并不仅限于以下的实施例。
假设一个云计算中心有编号为1至6的6台虚拟机可供使用,虚拟机vm1,vm2,…,vm6的处理能力和带宽如表1所示;一个CyberShake工作流任务间的时序关系如图2所示,由编号为1至15的15个任务组成,任务t1,t2,…,t15的执行长度,处理所需要的输入文件和处理后的输出文件的名称、长度以及可以被处理的虚拟机如表2所示。
表1
表2
针对上述案例,如图1所示,一种使用二维两阶段智能计算算法的云工作流调度优化方法,包括以下实施步骤:
执行步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
获取任务间的时序关系,即任务i的父任务集PRi和子任务集SCi:SC1={t2,t3,t4,t5,t6,t7};PR2={t1},SC2={t8,t14};PR3={t1},SC3={t9,t14};PR4={t1},SC4={t10,t14};PR5={t1},SC5={t11,t14};PR6={t1},SC6={t12,t14};PR7={t1},SC7={t13,t14};PR8={t2},SC8={t15};PR9={t3},SC9={t15};PR10={t4},SC10={t15};PR11={t5},SC11={t15};PR12={t6},SC12={t15};PR13={t7},SC13={t15};PR14={t2,t3,t4,t5,t6,t7},PR15={t8,t9,t10,t11,t12,t13},
获取任务的相关参数:t1.length=150000MI,t1.IFL={fd1,fd2,fd3},t1.OFL={f1-1,f1-2};t2.length=60000MI,t2.IFL={fd4,f1-1,f1-2},t2.OFL={f2-1};t3.length=60000MI,t3.IFL={fd5,f1-1,f1-2},t3.OFL={f3-1};t4.length=36000MI,t4.IFL={fd6,f1-1,f1-2},t4.OFL={f4-1};……,t15.length=600MI,t15.IFL={f8-1,f9-1,f10-1,f11-1,f12-1,f13-1},t15.OFL={f15-1};fd1.size=120000MB,fd2.size=120000MB,fd3.size=3600MB,f1-1.size=9600MB,……,f14-1.size=180MB,f15-1.size=30MB;
获取云计算环境下的虚拟机集: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:计算任务的层次值;
任务1没有父任务,则level1=1;
同理,可以获得其它任务的层次值:level3=level4=level5=level6=level7=2;level8=level9=level10=level11=level12=level13=level14=3;level15=4。
执行步骤3:初始化当代种群;
取种群规模N=10;
基于层次的个体随机生成方法生成一个个体的具体实施过程如下:
执行步骤A1:UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};k1=1,k2=1,k3=1,k4=1,k5=1,k6=1;
执行步骤A2:从UT={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中随机取出一个层次值最小的任务,其为t1;
执行步骤A3:从VM1={vm1,vm4,vm5,vm6}中随机选择一个虚拟机,其为vm1;
执行步骤A4:令g1,k1=g1,1=1,k1=k1+1=1+1=2;
执行步骤A5:由于UT={t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}不为空,转到步骤A2;
执行步骤A2:从UT={t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中随机取出一个层次值最小的任务,其为t2;
执行步骤A3:从VM2={vm1,vm3,vm4,vm5}中随机选择一个虚拟机,其为vm4;
执行步骤A4:令g4,k4=g4,1=2,k4=k4+1=1+1=2;
执行步骤A5:由于UT={t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}不为空,转到步骤A2;
执行步骤A2:从UT={t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中随机取出一个层次值最小的任务,其为t7;
执行步骤A3:从VM7={vm2,vm4,vm5}中随机选择一个虚拟机,其为vm4;
执行步骤A5:由于UT={t3,t4,t5,t6,t8,t9,t10,t11,t12,t13,t14,t15}不为空,转到步骤A2;
执行步骤A2:从UT={t3,t4,t5,t6,t8,t9,t10,t11,t12,t13,t14,t15}中随机取出一个层次值最小的任务,其为t5;
执行步骤A3:从VM5={vm1,vm2,vm6}中随机选择一个虚拟机,其为vm1;
执行步骤A5:由于UT={t3,t4,t6,t8,t9,t10,t11,t12,t13,t14,t15}不为空,转到步骤A2;
……
执行步骤A6:输出个体ch1={(1,5,4,13,15),(10),(6,12,9),(2,7,14),(3,8),(11)},操作结束;
同理,基于层次的个体随机生成方法生成当代种群中的其它不同个体如下:
ch2={(3,6,4),(10,11),(9,12),(1),(7,2,8),(5,13,14,15)};
ch3={(13),(5,7,10),(9,12),(1,6,11),(2,3,4),(14,8,15)};
ch4={(15),(10,11),(),(1,6,4,2,8,14),(3,7,9,12),(5,13)};
ch5={(1,3,6),(5,11),(12),(7,8,10),(2,9),(4,14,13,15)};
ch6={(4,3,5,6,13),(9),(2,11,12),(7,10),(1,8),(14,15)};
ch7={(6,2),(10),(4,11,9),(1,8),(3,7,14,12),(5,13,15)};
ch8={(4,9,15),(5,7,11,10,14),(),(1,2,6),(3,12),(8,13)};
ch9={(13),(9,14,11),(3,12),(7,4,2,6,10),(1,8),(5,15)};
ch10={(2,13,15),(5,10),(),(1,14,12,11),(7,3,6,4,9),(8)};
这样最终生成的初始当代种群为CP={ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10}。
对个体ch1={(1,5,4,13,15),(10),(6,12,9),(2,7,14),(3,8),(11)},计算各任务的执行时间, 则同理可以求得其它任务的执行时间et2=854,et3=836,et4=244,et5=108,et6=925.33,et7=884.33,et8=7.8,et9=7.6,et10=14.4,et11=10.8,et12=3,et13=12.6,et14=32.3,et15=12.6;
对ch1={(1,5,4,13,15),(10),(6,12,9),(2,7,14),(3,8),(11)}采用基于插入模式的串行个体解码方法进行解码的具体实施过程如下:
执行步骤B1:令所有任务的就绪时间rti=0,i=1,2,…,15;令虚拟机的可得时间段列表vatlj={[0,M]},j=1,2,3,4,5,6,M为一个接近无穷大的数;令分配给虚拟机的任务编号列表VTI1=(1,5,4,13,15),VTI2=(10),VTI3=(6,12,9),VTI4=(2,7,14),VTI5=(3,8),VTI6=(11);
执行步骤B2:由于VTI1的首元素为1,且任务1没有父任务,因此从VTI1=(1,5,4,13,15)中取出首元素1,VTI1=(5,4,13,15);
执行步骤B3:基于插入模式把任务1分配给虚拟机1;即执行步骤B3.1:在vatl1中从早到晚找出一个空闲时间段[0,M],满足M-0≥et1=9894和M-9894≥rt1=0;执行步骤B3.2:计算任务1分配给虚拟机1处理后的开始时间s1=max{v1,rt1}=max{0,0}=0,完成时间f1=s1+et1=0+9894=9894,更新任务1的子任务的就绪时间rt2=max{rt2,f1}=9894,rt3=9894,rt4=9894,rt5=9894,rt6=9894,rt7=9894;步骤B3.3:在虚拟机可得时间段列表vatl1中删除[0,M],由于[0,0]的区间长度为0,而[9894,M]的区间长度大于0,因此插入[9894,M],则vatl1={[9894,M]};
执行步骤B4:由于VTI1,…,VTI6不全为空,则转到步骤B2;
执行步骤B2:由于VTI1的首元素为5,且任务5的父任务已被调度,因此从VTI1=(5,4,13,15)中取出首元素5,VTI1=(4,13,15);
执行步骤B3:基于插入模式把任务5分配给虚拟机1;即执行步骤B3.1:在vatl1中从早到晚找出一个空闲时间段[9894,M],满足M-9894≥et5=108和M-108≥rt5=9894;执行步骤B3.2:计算任务5分配给虚拟机1处理后的开始时间
s5=max{v1,rt5}=max{9894,9894}=9894,完成时间f5=s5+et5=9894+108=10002,更新任务5的子任务的就绪时间rt11=max{rt11,f5}=max{0,10002}=10002,rt14=10002;步骤B3.3:在虚拟机可得时间段列表vatl1中删除[9894,M],由于[9894,9894]的区间长度为0,而[10002,M]的区间长度大于0,因此插入[10002,M],则vatl1={[10002,M]};
执行步骤B4:由于VTI1,…,VTI6不全为空,则转到步骤B2;
执行步骤B2:由于VTI1的首元素为4,且任务4的父任务都已被调度,因此从VTI1=(4,13,15)中取出首元素4,VTI1=(13,15);
执行步骤B3:基于插入模式把任务4分配给虚拟机1;即执行步骤B3.1:在vatl1中从早到晚找出一个空闲时间段[10002,M],满足M-10002≥et4=244和M-244≥rt4=9894;执行步骤B3.2:计算任务4分配给虚拟机1处理后的开始时间
s4=max{v1,rt4}=max{10002,9894}=10002,完成时间f4=10246,更新任务4的子任务的就绪时间rt10=10246,rt14=max{rt14,f4}=max{10002,10246}=10246;步骤B3.3:在虚拟机可得时间段列表vatl1中删除[10002,M],由于[10002,10002]的区间长度为0,而[10246,M]的区间长度大于0,因此插入[10246,M],则vatl1={[10246,M]};
执行步骤B4:由于VTI1,…,VTI6不全为空,则转到步骤B2;
执行步骤B2:由于此时VTI1的首元素为13,任务13的一个父任务还没有被调度,而VTI2的首元素为10,且任务10的所有父任务都已被调度,因此从VTI2=(10)中取出首元素10,VTI2=();
执行步骤B3:基于插入模式把任务10分配给虚拟机2;即执行步骤B3.1:在vatl2中从早到晚找出一个空闲时间段[0,M],满足M-0≥et10=14.4和M-14.4≥rt10=10246;执行步骤B3.2:计算任务10分配给虚拟机2处理后的开始时间
s10=max{v2,rt10}=max{0,10246}=10246,完成时间f10=10260.4,更新任务10的子任务的就绪时间rt15=max{rt15,f10}=max{0,10260.4}=10260.4;步骤B3.3:在虚拟机可得时间段列表vatl2中删除[0,M],由于[0,10246],[10260.4,M]的区间长度大于0;插入[0,10246]和[10260.4,M],则vatl2={[0,10246],[10260.4,M]};
执行步骤B4:由于VTI1,…,VTI6不全为空,则转到步骤B2;
……
这样不断重复执行步骤B2至步骤B4,直至VTIj全为空,转到步骤B5;
执行步骤B5:输出工作流的执行时间ms1=max{f1,…f15}=11664.63;获得所有任务的开始时间和完成时间:s1=0,s2=9894,s3=9894,s4=10002,s5=9894,s6=9894,s7=10748,s8=10748,s9=10822.33,s10=10246,s11=10002,s12=10819.33,s13=11632.33,s14=11632.33,s15=11644.93;f1=9894,f2=10748,f3=10730,f4=10246,f5=10002,f6=10819.33,f7=11632.33,f8=10755.8,f9=10829.93,f10=10260.4,f11=10012.8,f12=10822.33,f13=11644.93,f14=11664.63,f15=11657.53;操作结束;
同理,可以获得其它个体的工作流执行时间:ms2=9571.00,ms3=8447.00,ms4=7773.20,ms5=10834.53,ms6=8812.40,ms7=8529.60,ms8=8454.00,ms9=7544.53,ms10=9050.10。
执行步骤5:对当代种群进行N/2次二维层次交叉操作,形成新种群;
对当代种群进行二维层次交叉操作的具体实施过程如下:
执行步骤C1:采用锦标赛法从当代种群中随机选择两个不同的个体作为父体:即从当代种群中随机选择两个个体,其为ch8和ch10,由于ms8=8454.00<ms10=9050.10,因此选择ch8作为父体1,即再从当代种群中随机选择两个个体,其为ch3和ch8,由于ms3=8447.00<ms8=8454.00,因此选择ch3作为父体2,即令
执行步骤C2:由于最大层次值为4,故在1、2、3中随机选择一个交叉点,其为cs=2;
执行步骤C3:如表3所示,交换中的层次值大于2的任务编号序列(9,15)和中层次值大于2的任务编号序列(13),形成和交换中的层次值大于2的任务编号序列(11,10,14)和中层次值大于2的任务编号序列(10),形成和交换中的层次值大于2的任务编号序列()和中层次值大于2的任务编号序列(9,12),形成和交换中的层次值大于2的任务编号序列()和中层次值大于2的任务编号序列(11),形成和交换中的层次值大于2的任务编号序列(12)和中层次值大于2的任务编号序列(),形成和交换中的层次值大于2的任务编号序列(8,13)和中层次值大于2的任务编号序列(14,8,15),形成和
表3
执行步骤C4:输出个体chc1={(4,13),(5,7,10),(9,12),(1,2,6,11),(3),(14,8,15)}和chc2={(9,15),(5,7,11,10,14),(),(1,6),(2,3,4,12),(8,13)};
这样获得ch′1=chc1和ch′2=chc2;
同理,经二维层次交叉操作生成新种群中的剩余个体为:
ch′3={(4,3,5,6,13),(9),(2,11,12),(1,7,10),(8),(14,15)};
ch′4={(13),(5,7,10),(9,12),(6,11),(1,2,3,4),(14,8,15)};
ch′5={(13),(10),(3,9,12),(7,4,2,6,11),(1),(5,14,8,15)};
ch′6={(13),(5,7,9,14,11),(12),(1,6,10),(2,3,4,8),(15)};
ch′7={(13),(10),(3,9,12),(7,4,2,6,11),(1),(5,14,8,15)};
ch′8={(13),(5,7,9,14,11),(12),(1,6,10),(2,3,4,8),(15)};
ch′9={(13),(9,14,11),(3,12),(1,7,4,2,6,10),(8),(5,15)};
ch′10={(15),(10,11),(),(6,4,2,8,14),(1,3,7,9,12),(5,13)};
这样生成的新种群为NP={ch′1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10}。
执行步骤6:对新种群中的每个个体进行二维层次变异操作;
对新种群中的每个个体进行二维层次变异操作的具体实施过程如下:
取变异率pm=0.2;
对于ch′1={(4,13),(5,7,10),(9,12),(1,2,6,11),(3),(14,8,15)};
执行步骤D1:随机生成一个[0,1)的随机数λ,其为0.67,由于λ=0.67>pm=0.2,则转到步骤D5;
执行步骤D5:个体变异操作结束;
对于ch′2={(9,15),(5,7,11,10,14),(),(1,6),(2,3,4,12),(8,13)};
执行步骤D1:随机生成一个[0,1)的随机数λ,其为0.10,由于λ=0.10<pm=0.2,则转到步骤D2;
执行步骤D2:随机选择一个任务编号,其为3,从个体ch′2中删除值为3的基因,即删除基因g5,2,则ch′2={(9,15),(5,7,11,10,14),(),(1,6),(2,4,12),(8,13)};
执行步骤D3:从VM3={vm1,vm2,vm3,vm5}中重新随机选择一个虚拟机,其为虚拟机3;
执行步骤D4:由于分配给虚拟机3处理的任务为空,即在虚拟机3中,既不存在层次值小于任务3的任务编号,也不存在层次值大于任务3的任务编号,因此随机选择一个位置插入3,其为g3,1;
执行步骤D5:个体变异操作结束;
这样,变异后的个体变为:ch′2={(9,15),(5,7,11,10,14),(3),(1,6),(2,4,12),(8,13)};
同理,经二维层次变异后新种群中的其它个体变为:
ch′3={(4,3,5,6,13),(9),(2,11,12),(1,7,10),(8),(14,15)};
ch′4={(4,13),(5,7,10),(9,12),(6,11),(1,2,3),(14,8,15)};
ch′5={(13),(10),(3,9,12),(7,4,2,6,11),(),(1,5,14,8,15)};
ch′6={(13,15),(5,7,9,14,11),(12),(1,6,10),(2,3,4,8),()};
ch′7={(13),(10),(3,9,12),(7,4,2,6,11),(1),(5,14,8,15)};
ch′8={(13),(7,9,14,11),(12),(1,6,10),(2,3,4,8),(5,15)};
ch′9={(13),(9,14,11),(3,4,12),(1,7,2,6,10),(8),(5,15)};
ch′10={(13,15),(10,11),(),(6,4,2,8,14),(1,3,7,9,12),(5)}。
对于ch′1={(4,13),(5,7,10),(9,12),(1,2,6,11),(3),(14,8,15)};其各任务的执行时间为:而ω1,4=150000/2000=75,τ1,4=8×(120000+120000+3600)/300=6496,因此et1=75+0+6496=6571,同理可获得其它个体其各任务的执行时间:et2=86,et3=580,et4=1012,et5=876,et6=157.33,et7=950,et8=7.8,et9=7.6,et10=14.4,et11=11.4,et12=9.4,et13=12.6,et14=46.6,et15=9.8;
采用基于插入模式的串行个体解码方法获得新种群中每个个体的适应度值即工作流执行时间为:ms′1=8453.40,ms′2=8454.00,ms′3=10461.40,ms′4=6802.80,ms′5=7528.33,ms′6=8464.20,ms′7=7528.33,ms′8=8401.60,ms′9=7903.87,ms′10=6879.60。
执行步骤8:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群;
根据适应度值,选择当代种群的ch3、ch4、ch9和新种群的ch′1、ch′4、ch′5、ch′7、ch′8、ch′9、ch′10形成下一代种群,即GP={ch3,ch4,ch9,ch′1,ch′4,ch′5,ch′7,ch′8,ch′9,ch′10}。
令CP=GP,则当代种群的所有个体为:
ch1={(13),(5,7,10),(9,12),(1,6,11),(2,3,4),(14,8,15)};
ch2={(15),(10,11),(),(1,6,4,2,8,14),(3,7,9,12),(5,13)};
ch3={(13),(9,14,11),(3,12),(7,4,2,6,10),(1,8),(5,15)};
ch4={(4,13),(5,7,10),(9,12),(1,2,6,11),(3),(14,8,15)};
ch5={(4,13),(5,7,10),(9,12),(6,11),(1,2,3),(14,8,15)};
ch6={(13),(10),(3,9,12),(7,4,2,6,11),(),(1,5,14,8,15)};
ch7={(13),(10),(3,9,12),(7,4,2,6,11),(1),(5,14,8,15)};
ch8={(13),(7,9,14,11),(12),(1,6,10),(2,3,4,8),(5,15)};
ch9={(13),(9,14,11),(3,4,12),(1,7,2,6,10),(8),(5,15)};
ch10={(13,15),(10,11),(),(6,4,2,8,14),(1,3,7,9,12),(5)};
其适应度值即工作流执行时间分别为:ms1=8447.00,ms2=7773.20,ms3=7544.53,ms4=8453.40,ms5=6802.80,ms6=7528.33,ms7=7528.33,ms8=8401.60,ms9=7903.87,ms10=6879.60。
执行步骤9:判断是否满足第一阶段终止条件,如满足,则第一阶段进化结束转到步骤10,否则转到步骤5;
第一阶段迭代终止条件设为种群进化TG1=15代;
由于当前种群进化了两代,没有满足第一阶段迭代终止条件,因此转到步骤5。
……
这样不断重复执行步骤5至步骤9,迭代15代后,当代种群变为:
ch1={(4,13,15),(5,7,10,11),(),(6,8,14),(1,2,3,9,12),()};
ch2={(4,13),(5,7,10),(9,12),(6,11),(1,2,3),(14,8,15)};
ch3={(4,13),(5,7,10,11),(9,12),(6),(1,2,3),(14,8,15)};
ch4={(5,13),(10),(9,12),(6,4,2,11),(1,3,7),(14,8,15)};
ch5={(13,15),(10,11),(),(6,4,2,8,14),(1,3,7,9,12),(5)};
ch6={(13),(10,14),(9,12),(6,4,2,11),(1,3,7),(5,8,15)};
ch7={(13,15),(10,11),(),(6,4,8,14),(1,3,7,2,9,12),(5)};
ch8={(15),(10),(),(6,4,2,11,8,14),(3,7,9,12),(1,5,13)};
ch9={(5,13),(10,11),(9,12),(6,4,2),(1,3,7),(14,8,15)};
ch10={(5,15),(10,11),(),(6,4,2,8,14),(1,3,7,9,12),(13)};
其适应度值即工作流执行时间分别为:ms1=6789.90,ms2=6802.80,ms3=6803.60,ms4=6914.20,ms5=6879.60,ms6=6916.20,ms7=6294.40,ms8=6887.80,ms9=6915.00,ms10=6882.80;
由于种群进化了15代,满足了第一阶段迭代终止条件,则第一阶段进化结束,转到步骤10。
执行步骤10:对当代种群进行N/2次二维拓扑排序交叉操作,形成新种群;
对当代种群进行二维拓扑排序交叉操作的具体实施过程如下:
执行步骤E1:采用锦标赛法从当代种群中随机选择两个不同的个体作为父体;其为:chp1=ch2={(4,13),(5,7,10),(9,12),(6,11),(1,2,3),(14,8,15)}和chp2=ch7={(13,15),(10,11),(),(6,4,8,14),(1,3,7,2,9,12),(5)};
执行步骤E3:由于在中只有满足不为空且编号为其首元素的任务不存在父任务或其父任务编号已在FT1中,在中只有满足不为空的且编号为其首元素的任务不存在父任务或其父任务编号已在FT2中,因此选择分别从中取出首元素1、1,将元素1添加到的尾部,即将元素1添加到的尾部,即FT1=FT1∪{1}={}∪{1}={1},FT2=FT2∪{1}={}∪{1}={1};
执行步骤E4:α=α-1=5-1=4,由于α=4>0,则转到步骤E3;
执行步骤E3:由于在中只有满足不为空且编号为其首元素的任务不存在父任务或其父任务编号已在FT1中,在中只有满足不为空的且编号为其首元素的任务不存在父任务或其父任务编号已在FT2中,分别从中随机选择一个其为分别从取出首元素5、5,将元素5添加到的尾部,即将元素5添加到的尾部,即FT1={1}∪{5}={1,5},FT2={1}∪{5}={1,5};
执行步骤E4:α=α-1=4-1=3,由于α=3>0,则转到步骤E3;
执行步骤E3:由于在中只有满足不为空且编号为其首元素的任务不存在父任务或其父任务编号已在FT1中,在中只有满足不为空的且编号为其首元素的任务不存在父任务或其父任务编号已在FT2中,分别从中随机选择一个其为分别从取出首元素7、3;将元素7添加到的尾部,即将元素3添加到的尾部,即FT1={1,5}∪{7}={1,5,7},FT2={1,5}∪{3}={1,3,5};
执行步骤E4:α=α-1=3-1=2,由于α=2>0,则转到步骤E3;
......
执行步骤E5:对于虚拟机1,由于中不存在属于FT1={1,5,6,7,11}的元素,直接将元素13、15添加到的尾部,则对于虚拟机2,在中删除FT1={1,5,6,7,11}中存在的元素11,将元素10添加到的尾部,则对于虚拟机3,由于不存在任务元素,则不变;对于虚拟机4,在中删除FT1={1,5,6,7,11}中存在的元素6,将元素4、8、14添加到的尾部,则对于虚拟机5,在中删除FT1={1,5,6,7,11}中存在的元素1、7,将元素3、2、9、12添加到的尾部,则对于虚拟机6,在中删除FT1={1,5,6,7,11}中存在的元素5,此时则不变;最终,形成子体1:chc1={(13,15),(5,7,10),(),(6,11,4,8,14),(1,3,2,9,12),()};
执行步骤E6:对于虚拟机1,在中不存在属于FT2={1,3,5,6,7}的元素,直接将元素4、13添加到的尾部,则对于虚拟机2,由于中删除FT2={1,3,5,6,7}中存在的元素5、7,将元素10添加到的尾部,则对于虚拟机3,在中不存在属于FT2={1,3,5,6,7}的元素,直接将元素9、12添加到的尾部,则对于虚拟机4,在中删除FT2={1,3,5,6,7}中存在的元素6,将元素11添加到的尾部,则对于虚拟机5,在中删除FT2={1,3,5,6,7}中存在的元素1、3,将元素2添加到的尾部,则对于虚拟机6,在中不存在属于FT2={1,3,5,6,7}的元素,直接将元素14、8、15添加到的尾部,则最终,形成子体2:
chc2={(4,13),(10),(9,12),(6,11),(1,3,7,2),(5,14,8,15)};
执行步骤E7:输出chc1={(13,15),(5,7,10),(),(6,11,4,8,14),(1,3,2,9,12),()},chc2={(4,13),(10),(9,12),(6,11),(1,3,7,2),(5,14,8,15)},操作结束;
这样获得ch′1=chc1,ch′2=chc2;
同理,经二维拓扑排序交叉操作生成新种群中的剩余个体为:
ch′3={(13),(10,5,7,11),(9,12),(6,4,2),(3),(1,14,8,15)};
ch′4={(4,15),(5,7,10),(),(6,2,11,8,14),(1,3,9,12),(13)};
ch′5={(4,13),(5,7,10),(9,12),(6,11),(1,2,3),(14,8,15)};
ch′6={(4,13),(5,7,10,11),(9,12),(6),(1,2,3),(14,8,15)};
ch′7={(4,13),(5,7,10),(9,12),(6,11),(1,2,3),(14,8,15)};
ch′8={(4,13,15),(5,7,10,11),(),(6,8,14),(1,2,3,9,12),()};
ch′9={(4,13,15),(5,10),(),(6,11,2,8,14),(1,3,7,9,12),()};
ch′10={(4,13),(10),(12),(6,11),(1,3,7,9,2),(5,14,8,15)};
这样生成的新种群为NP={ch′1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10}。
执行步骤11:对新种群中的每个个体进行二维拓扑排序变异操作;
取变异率pm=0.2;
对新种群进行二维拓扑排序变异操作的具体实施过程如下:
对于ch′1={(13,15),(5,7,10),(),(6,11,4,8,14),(1,3,2,9,12),()};
执行步骤F1:随机生成一个[0,1)的随机数λ,其为0.04,由于λ=0.04<pm=0.2,则转到步骤F2;
执行步骤F2:随机选择一个任务编号,其为10,从个体ch′1中删除值为10的基因,即删除基因g2,3,则ch′1={(13,15),(5,7),(),(6,11,4,8,14),(1,3,2,9,12),()};
执行步骤F3:从VM10={vm2,vm4}中重新随机选择一个虚拟机,其为虚拟机4;
执行步骤F4:由于(g4,1,g4,2,g4,3,g4,4,g4,5)=(6,11,4,8,14)中存在任务10的祖先任务编号,而不存在任务10的子孙任务编号,因此在(g4,1,g4,2,g4,3,g4,4,g4,5)=(6,11,4,8,14)中从前向后寻找其最后一个祖先任务编号,其为g4,3=4,在g4,3之后随机找一个位置插入10,其为g4,4;
执行步骤F5:个体变异操作结束;
这样,变异后的个体变为:ch′1={(13,15),(5,7),(),(6,11,4,10,8,14),(1,3,2,9,12),()};
同理,对于新种群中的其它个体经二维拓扑排序变异后变为:
ch′2={(13),(10),(9,12,4),(6,11),(1,3,7,2),(5,14,8,15)};
ch′3={(13),(5,7,11),(9,12),(6,4,2,10),(3),(1,14,8,15)};
ch′4={(4,15),(5,7,10),(),(6,2,11,8,14),(1,3,9,12),(13)};
ch′5={(4,13),(5,7,10),(9,12),(6,11,2),(1,3),(14,8,15)};
ch′6={(4,13),(5,7,10,11),(9,12),(6),(1,2,3),(14,8,15)};
ch′7={(4,2,13),(5,7,10),(9,12),(6,11),(1,3),(14,8,15)};
ch′8={(4,13,15),(5,7,10,11),(12),(6,8,14),(1,2,3,9),()};
ch′9={(13,15),(5,10),(4),(6,11,2,8,14),(1,3,7,9,12),()};
ch′10={(4,13),(10),(12),(6,11,14),(1,3,7,9,2),(5,8,15)}。
执行步骤12:采用FBI&D和LDI方法改进新种群中的所有个体并计算其适应度值;
对新种群中的所有个体采用FBI&D方法改进,例如对新种群中的ch′2={(13),(10),(9,12,4),(6,11),(1,3,7,2),(5,14,8,15)}采用FBI&D方法改进的具体实施过程如下:
执行步骤G1:计算所有任务的执行时间:
et2=62.00,et3=68.00,et4=668.67,et5=432.00,et6=669.33,et7=86.00,et8=6.20,et9=7.60,et10=14.40,et11=8.20,et12=9.40,et13=12.60,et14=27.40,et15=9.80;
执行步骤G2:k=1,采用基于插入模式的串行个体解码方法对个体ch′2进行解码,获得所有任务的完成时间:f1=4922.00,f2=5138.00,f3=4990.00,f4=6269.40,f5=5354.00,f6=5591.33,f7=5076.00,f8=5360.20,f9=4997.60,f10=6283.80,f11=5599.53,f12=5600.73,f13=5088.60,f14=6296.80,f15=6306.60,及工作流的执行时间ms′2=max{f1,…,f15}=6306.60;
执行步骤G3:颠倒任务的父子关系,即SC15={t8,t9,t10,t11,t12,t13};SC14={t2,t3,t4,t5,t6,t7};PR13={t15},SC13={t7};PR12={t15},SC12={t6};PR11={t15},SC11={t5};PR10={t15},SC10={t4};PR9={t15},SC9={t3};PR8={t15},SC8={t2};PR7={t13,t14},SC7={t1};PR6={t12,t14},SC6={t1};PR5={t11,t14},SC5={t1};PR4={t10,t14},SC4={t1};PR3={t9,t14},SC3={t1};PR2={t8,t14},SC2={t1};PR1={t2,t3,t4,t5,t6,t7},把个体ch′2中每个虚拟机j对应的基因序列gj,1,…,gj,Ij根据任务完成时间从大到小重新排列,j=1,…,6,形成个体
执行步骤G3:颠倒任务的父子关系,即SC1={t2,t3,t4,t5,t6,t7};PR2={t1},SC2={t8,t14};PR3={t1},SC3={t9,t14};PR4={t1},SC4={t10,t14};PR5={t1},SC5={t11,t14};PR6={t1},SC6={t12,t14};PR7={t1},SC7={t13,t14};PR8={t2},SC8={t15};PR9={t3},SC9={t15};PR10={t4},SC10={t15};PR11={t5},SC11={t15};PR12={t6},SC12={t15};PR13={t7},SC13={t15};PR14={t2,t3,t4,t5,t6,t7},PR15={t8,t9,t10,t11,t12,t13},把个体ch′2中每个虚拟机j对应的基因序列根据任务完成时间从大到小重新排列,j=1,…,6,形成个体
新种群中的其它个体经FBI&D方法改进后变为:
ch′1={(13,15),(5,7),(),(6,11,4,10,8,14),(1,3,2,9,12),()};
ch′3={(13),(5,7,11),(9,12),(6,4,2,10),(3),(1,14,8,15)};
ch′4={(4,15),(5,7,10),(),(6,2,11,8,14),(1,3,9,12),(13)};
ch′5={(4,13),(5,7,10),(9,12),(6,11,2),(1,3),(14,8,15)};
ch′6={(4,13),(5,7,10,11),(9,12),(6),(1,2,3),(14,8,15)};
ch′7={(4,2,13),(5,7,10),(9,12),(6,11),(1,3),(14,8,15)};
ch′8={(4,13,15),(5,7,10,11),(12),(6,8,14),(1,2,3,9),()};
ch′9={(13,15),(5,10),(4),(6,11,2,8,14),(1,3,7,9,12),()};
ch′10={(4,13),(10),(12),(6,11,14),(1,3,7,9,2),(5,8,15)};
其适应度值即工作流执行时间分别为:ms′1=6780.30,ms′3=6919.00,ms′4=6783.50,ms′5=6804.40,ms′6=6803.60,ms′7=6916.60,ms′8=6789.90,ms′9=6438.60,ms′10=5969.50。
对新种群中的所有个体采用LDI方法改进,例如对新种群中的ch′6={(4,13),(5,7,10,11),(9,12),(6),(1,2,3),(14,8,15)}采用LDI方法改进的具体实施过程如下:
执行步骤H1:令VTN1={t4,t13},VTN2={t5,t7,t10,t11},VTN3={t9,t12},VTN4={t6},VTN5={t1,t2,t3},VTN6={t14,t8,t15};计算各虚拟机的负载:
执行步骤H2:找出负载最小的虚拟机,其为vm6,由于ld6=1.8>0,故转到步骤H3;
执行步骤H3:
执行步骤H5:由于ST6={t4,t5,t11,t13}不为空,则从ST6中按顺序取出一个其所在虚拟机负载是最高的任务,其为t5,则ST6={t4,t11,t13},转到步骤H6;
执行步骤H6:由于(g6,1,g6,2,g6,3)=(14,8,15)中不存在任务5的祖先任务编号,而存在任务5的子孙任务编号,因此在(g6,1,g6,2,g6,3)=(14,8,15)中从前向后寻找其第一个子孙任务编号,其为g6,1=14,在g6,1之前随机找一个位置插入5,其为g6,1;在(g2,1,g2,2,g2,3,g2,4)=(5,7,10,11)删除5,形成新个体采用FBI&D方法对新个体进行解码改进,新个体变为其工作流执行时间为由于因此用改进的个体替换原个体,即转到步骤H7;
执行步骤H7:LDI操作结束;
新种群中的其它个体经LDI方法改进后变为:
ch′1={(13,15),(5,7),(),(6,11,4,10,8,14),(1,3,2,9,12),()};
ch′2={(13,15),(10),(4,9,12),(6,11),(1,3,7,2),(5,8,14)};
ch′3={(13),(5,7,11),(9,12),(6,4,2,10),(3),(1,14,8,15)};
ch′4={(15),(5,7,10),(4),(6,2,11,8,14),(1,3,9,12),(13)};
ch′5={(4,13),(7,10),(9,12),(6,2,11),(1,3),(5,14,8,15)};
ch′7={(2,13),(5,7,10),(9,12),(6,11),(1,3),(4,14,8,15)};
ch′8={(4,13,15),(7,10,11),(12),(6,8,14),(1,2,3,9),(5)};
ch′9={(13,15),(5,10),(4),(6,11,2,14),(1,3,7,9,12),(8)};
ch′10={(4,13),(10),(12),(6,11,14),(1,3,7,9,2),(5,8,15)};
其适应度值即工作流执行时间分别为:ms′1=6780.30,ms′2=5620.27,ms′3=6919.00,ms′4=6780.30,ms′5=6243.93,ms′7=6798.00,ms′8=5972.70,ms′9=6436.50,ms′10=5969.50。
执行步骤13:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群;
根据适应度值,选择当代种群的ch1、ch7和新种群的ch′1、ch′2、ch′4、ch′5、ch′6、ch′8、ch′9、ch′10形成下一代种群,即GP={ch1,ch7,ch′1,ch′2,ch′4,ch′5,ch′6,ch′8,ch′9,ch′10}。
令CP=GP,则当代种群的所有个体为:
ch1={(4,13,15),(5,7,10,11),(),(6,8,14),(1,2,3,9,12),()};
ch2={(13,15),(10,11),(),(6,4,8,14),(1,3,7,2,9,12),(5)};
ch3={(13,15),(5,7),(),(6,11,4,10,8,14),(1,3,2,9,12),()};
ch4={(13,15),(10),(4,9,12),(6,11),(1,3,7,2),(5,8,14)};
ch5={(15),(5,7,10),(4),(6,2,11,8,14),(1,3,9,12),(13)};
ch6={(4,13),(7,10),(9,12),(6,2,11),(1,3),(5,14,8,15)};
ch7={(4,13),(7,10,11),(9,12),(6),(1,2,3),(5,14,8,15)};
ch8={(4,13,15),(7,10,11),(12),(6,8,14),(1,2,3,9),(5)};
ch9={(13,15),(5,10),(4),(6,11,2,14),(1,3,7,9,12),(8)};
ch10={(4,13),(10),(12),(6,11,14),(1,3,7,9,2),(5,8,15)};
其适应度值即工作流执行时间分别为:ms1=6789.90,ms2=6294.40,ms3=6780.30,ms4=5620.27,ms5=6780.30,ms6=6243.93,ms7=5980.00,ms8=5972.70,ms9=6436.50,ms10=5969.50。
执行步骤14:判断是否满足第二阶段终止条件,如满足,则第二阶段进化结束转到步骤15,否则转到步骤10;
第二阶段进化终止条件设为种群进化TG2=20代;
由于当前种群在第二阶段只进化了一代,没有满足第二阶段迭代终止条件,因此转到步骤10。
……
这样不断重复执行步骤10至步骤14,迭代20代后,当代种群变为:
ch1={(),(10,11),(),(),(1,4,7,2,3,6,12,9,14),(5,8,13,15)};
ch2={(9),(),(),(10),(1,4,7,2,8,3,6,12,14),(5,11,13,15)};
ch3={(),(10),(),(),(1,4,7,2,3,6,12,9,14),(5,11,8,13,15)};
ch4={(),(),(),(10,11),(1,4,7,2,3,6,12,9,14),(5,8,13,15)};
ch5={(),(11),(),(10),(1,4,7,2,3,6,12,9,14),(5,8,13,15)};
ch6={(),(),(11,9),(10),(1,4,7,2,3,6,12,14),(5,8,13,15)};
ch7={(),(),(9),(10),(1,4,7,2,3,6,12,14),(5,11,8,13,15)};
ch8={(9),(10),(11),(),(1,4,7,2,3,6,12,14),(5,8,13,15)};
ch9={(9),(),(),(10),(1,4,7,2,3,6,12,14),(5,11,8,13,15)};
ch10={(9),(),(11),(10),(1,4,7,2,3,6,12,14),(5,8,13,15)};
其适应度值即工作流执行时间分别为:ms1=5380.20,ms2=5380.00,ms3=5377.80,ms4=5378.60,ms5=5379.40,ms6=5378.20,ms7=5377.00,ms8=5379.80,ms9=5377.40,ms10=5379.00;
由于种群在第二阶段进化了20代,满足了第二阶段迭代终止条件,则第二阶段进化结束,转到步骤15。
执行步骤15:输出当代种群中的最优个体,其对应的调度方案为优化方案;
当代种群中的最优个体为{(),(),(9),(10),(1,4,7,2,3,6,12,14),(5,11,8,13,15)},其工作流执行时间为5377.00,对应的调度优化方案如表4所示。
调度顺序 | 任务编号 | 开始时间 | 执行时间 | 结束时间 | 虚拟机编号 |
1 | 1 | 0.00 | 4922.00 | 4922.00 | 5 |
2 | 4 | 4922.00 | 116.00 | 5038.00 | 5 |
3 | 10 | 5038.00 | 8.80 | 5046.80 | 4 |
4 | 7 | 5038.00 | 86.00 | 5124.00 | 5 |
5 | 2 | 5124.00 | 62.00 | 5186.00 | 5 |
6 | 3 | 5186.00 | 68.00 | 5254.00 | 5 |
7 | 9 | 5254.00 | 7.60 | 5261.60 | 3 |
8 | 6 | 5254.00 | 116.00 | 5370.00 | 5 |
9 | 12 | 5370.00 | 2.00 | 5372.00 | 5 |
10 | 5 | 4922.00 | 432.00 | 5354.00 | 6 |
11 | 14 | 5372.00 | 5.00 | 5377.00 | 5 |
12 | 11 | 5354.00 | 1.20 | 5355.20 | 6 |
13 | 8 | 5355.20 | 6.20 | 5361.40 | 6 |
14 | 13 | 5361.40 | 5.80 | 5367.20 | 6 |
15 | 15 | 5372.00 | 4.60 | 5376.60 | 6 |
表4
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。
Claims (5)
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:计算任务的层次值;
对于没有父任务的开始任务i,其层次值为:
leveli=1 (1)
其它任务的层次值采用如下递归公式进行计算:
步骤3:初始化当代种群;
采用基于层次的个体随机生成方法生成N个不同的个体形成当代初始种群,其中N为种群规模,且为偶数;
所述个体采用二维整数编码,其方法如下:其中gj,i表示分配给虚拟机j的并在虚拟机j中是第i个被调度的任务的编号;是分配给虚拟机j的任务编号的一个排序,且满足任务时序约束,Ij表示分配给虚拟机j的任务数量;
vmj处理ti的时间ωi,j计算如下:
把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间τi,j计算如下:
所述个体的适应度值为工作流执行时间,适应度值越小个体越优;
步骤5:对当代种群进行N/2次二维层次交叉操作,形成新种群;
步骤6:对新种群的每个个体进行二维层次变异操作;
步骤8:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群;
步骤9:判断是否满足第一阶段终止条件,如满足,则第一阶段进化结束转到步骤10,否则转到步骤5;
所述第一阶段终止条件为迭代到指定的代数TG1或连续迭代GG1代最优个体没有改进;
步骤10:对当代种群进行N/2次二维拓扑排序交叉操作,形成新种群;
所述二维拓扑排序交叉操作包括如下步骤:
步骤E3:分别随机选择一个不为空且编号为其首元素的任务不存在父任务或其父任务都已在FT1、FT2中的分别从中取出首元素i′,i″;然后分别把i′,i″添加到的尾部;FT1=FT1∪i′,FT2=FT2∪i″;
步骤E4:α=α-1,如果α>0,则转到步骤E3,否则转到步骤E5;
步骤E7:输出chc1,chc2,操作结束;
采用锦标赛法从当代种群中随机选择1个个体的过程描述如下:首先从当代种群中随机选择两个不同个体,然后比较这两个个体的适应度值,去掉差的个体,保留优的个体;
步骤11:对新种群中的每个个体进行二维拓扑排序变异操作;
所述二维拓扑排序变异操作包括如下步骤:
步骤F1:随机生成一个随机数λ∈(0,1);如果λ≤pm,则转到步骤F2,否则转到步骤F5;
步骤F2:随机选择一个任务编号i,并在个体中删除值为i的基因;
步骤F3:在VMi中重新随机选择一个虚拟机,不妨设为虚拟机j;
步骤F4:在中从前向后寻找任务i的最后一个祖先任务编号和第一个子孙任务编号,如果都找到,那么在最后一个祖先任务编号和第一个子孙任务编号之间随机找一个位置插入i;如果子孙任务编号不存在而祖先任务编号存在,那么在最后一个祖先任务编号之后随机找一个位置插入i;如果子孙任务编号存在而祖先任务编号不存在,那么在第一个子孙任务编号之前随机找一个位置插入i;如果子孙任务编号和祖先任务编号都不存在,那么随机找一个位置插入i;
步骤F5:个体变异操作结束;
其中,pm∈(0,1]是变异率;
步骤12:采用FBI&D和LDI方法改进新种群中的所有个体并计算其适应度值;
所述FBI&D方法包括如下步骤:
步骤G2:令变量k=1,采用基于插入模式的串行个体解码方法对个体ch进行解码,获得所有任务的完成时间fi,i=1,…,I,及工作流的执行时间ms=max{f1,…,fI};
所述LDI方法包括如下步骤:
步骤H2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤H3,否则转到步骤H4;
步骤H4:令任务集STj′=Tj′,转到步骤H5;
步骤H5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机j″的负载是最高的任务i′,转到步骤H6;否则转到步骤H7;
步骤H6:在中从前向后寻找任务i′的最后一个祖先任务编号和第一个子孙任务编号,如果都找到,那么在最后一个祖先任务编号和第一个子孙任务编号之间随机找一个位置插入i′;如果子孙任务编号不存在而祖先任务编号存在,那么在最后一个祖先任务编号之后随机找一个位置插入i′;如果子孙任务编号存在而祖先任务编号不存在,那么在第一个子孙任务编号之前随机找一个位置插入i′;如果子孙任务编号和祖先任务编号都不存在,那么随机找一个位置插入i′;在中删除i′,形成新个体,采用FBI&D方法对新个体进行解码改进,如果有改进则用此改进的个体替换原个体,转到步骤H7;否则转到步骤H5;
步骤H7:LDI操作结束;
步骤13:根据适应度值从优到劣从当代种群和新种群中选出N个不同的个体形成新的当代种群;
步骤14:判断是否满足第二阶段终止条件,如满足,则第二阶段进化结束转到步骤15,否则转到步骤10;
所述第二阶段终止条件为迭代到指定的代数TG2或连续迭代GG2代最优个体没有改进;
步骤15:输出当代种群中的最优个体,其对应的调度方案为优化方案。
3.根据权利要求1所述的一种使用二维两阶段智能计算算法的云工作流调度优化方法,其特征在于:所述步骤4、步骤7、步骤G2、步骤G4中基于插入模式的串行个体解码方法的具体步骤如下:
步骤B2:按虚拟机编号顺序选择一个不为空的且编号为首元素的任务不存在父任务或其父任务都已被调度的VTIj,从VTIj中取出首元素,不妨设为i;
步骤B3:基于插入模式把任务i分配给虚拟机j;
步骤B3.1:在vatlj中从早到晚找出一个空闲时段[νj,υj]满足υj-νj≥eti和υj-eti≥rti;
步骤B3.3:在vatlj中删除[νj,υj],插入区间长度大于0的[νj,si]和[fi,υj];
步骤B4:如果VTIj不全为空,则转到步骤B2,否则转到步骤B5;
步骤B5:输出工作流执行时间ms=max{f1,…,fI},si、fi,i=1,…,I,操作结束。
5.根据权利要求1所述的一种使用二维两阶段智能计算算法的云工作流调度优化方法,其特征在于:所述步骤6中二维层次变异操作的具体步骤如下:
步骤D1:随机生成1个随机数λ∈[0,1);如果λ≤pm,则转到步骤D2,否则转到步骤D5;
步骤D2:随机选择一个任务编号i,并在个体中删除值为i的基因;
步骤D3:在VMi中随机选择一个虚拟机,不妨设为虚拟机j;
步骤D4:在中从后向前寻找层次值小于任务i的第一个任务编号i′,从前向后寻找层次值大于任务i的第一个任务编号i″;如果i′和i″都存在,那么在i′和i″之间随机找一个位置插入i;如果i′存在而i″不存在,那么在i′之后随机找一个位置插入i;如果i′不存在而i″存在,那么在i″之前随机找一个位置插入i;如果i′和i″都不存在,那么随机找一个位置插入i;
步骤D5:个体变异操作结束;
其中:pm∈[0,1)是变异率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911259908.3A CN110990125A (zh) | 2019-12-10 | 2019-12-10 | 使用二维两阶段智能计算算法的云工作流调度优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911259908.3A CN110990125A (zh) | 2019-12-10 | 2019-12-10 | 使用二维两阶段智能计算算法的云工作流调度优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110990125A true CN110990125A (zh) | 2020-04-10 |
Family
ID=70091929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911259908.3A Withdrawn CN110990125A (zh) | 2019-12-10 | 2019-12-10 | 使用二维两阶段智能计算算法的云工作流调度优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990125A (zh) |
-
2019
- 2019-12-10 CN CN201911259908.3A patent/CN110990125A/zh not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389819B (zh) | 一种计算密集型批处理任务的调度方法和系统 | |
CN113821318B (zh) | 一种物联网跨域子任务组合协同计算方法及系统 | |
CN112685138B (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
CN111126800B (zh) | 使用分层自适应智能算法的多模资源受限项目调度方法 | |
CN109491791B (zh) | 基于申威众核处理器的nsga-ii的主从增强式运行方法及装置 | |
CN110780985A (zh) | 一种有限时间的并行任务调度方法与装置 | |
CN108170861B (zh) | 一种基于动态规划的分布式数据库系统协同优化方法 | |
CN110928648B (zh) | 融合启发式和智能计算的云工作流分段在线调度优化方法 | |
CN111090510A (zh) | 混合启发式和遗传算法的两阶段云工作流调度优化方法 | |
CN111026534B (zh) | 云计算环境下基于多种群遗传算法的工作流执行优化方法 | |
CN111008745A (zh) | 混合启发式与智能算法的多模资源受限项目调度优化方法 | |
CN110991917B (zh) | 采用两阶段遗传算法的多模资源受限项目调度优化方法 | |
CN110968428B (zh) | 云工作流虚拟机配置和任务调度协同优化方法 | |
CN111078361A (zh) | 基于分布式估计算法的云工作流调度优化方法 | |
CN112884368A (zh) | 面向高端装备交货时间与延迟最小的多目标调度方法及系统 | |
CN110990125A (zh) | 使用二维两阶段智能计算算法的云工作流调度优化方法 | |
CN110928670B (zh) | 云计算环境下基于偏序自适应遗传算法的工作流优化方法 | |
CN111026506A (zh) | 采用多种群协同进化遗传算法的云工作流调度优化方法 | |
CN110941487B (zh) | 云计算环境下基于多阶段遗传算法的工作流调度优化方法 | |
CN111047183A (zh) | 基于分层自适应智能计算算法的云工作流调度优化方法 | |
CN110928669B (zh) | 基于多种群遗传算法的能耗感知云工作流调度优化方法 | |
CN111078381A (zh) | 基于二维编码遗传算法的云工作流调度优化方法 | |
CN111061563A (zh) | 云计算环境下基于多解码遗传算法的工作流调度优化方法 | |
CN113407336B (zh) | 基于禁忌搜索优化算法的全比较数据分发方法 | |
CN111026533A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200410 |