[发明专利]云计算环境下基于多阶段遗传算法的工作流调度优化方法有效

专利信息
申请号: 201911259896.4 申请日: 2019-12-10
公开(公告)号: CN110941487B 公开(公告)日: 2022-07-29
发明(设计)人: 谢毅;孙鹤 申请(专利权)人: 浙江工商大学
主分类号: G06F9/48 分类号: G06F9/48;G06F9/50;G06N3/12
代理公司: 杭州浙科专利事务所(普通合伙) 33213 代理人: 吴秉中
地址: 310012 浙*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 计算 环境 基于 阶段 遗传 算法 工作流 调度 优化 方法
【权利要求书】:

1.一种云计算环境下基于多阶段遗传算法的工作流调度优化方法,其特征在于:包括以下步骤:

步骤1:形式化调度问题,获取调度优化所需的信息;

获取任务集T={t1,t2,...,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;

获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,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为偶数;

所述个体采用2I位整数编码,I为任务数量,其方法如下:ch={g1,…,gI,gI+1,…,g2I},基因gi是一个非负整数;其中,{g1,…,gI}是虚拟机分配列表,gi表示给任务i分配的虚拟机编号,即把任务i分配给虚拟机gi,gi∈VMi;{gI+1,…,g2I}是任务调度顺序列表,是1,…,I的一个排列,且满足任务的时序约束,即任何任务都不能排在其父任务的前面,gI+i表示第i个被调度的任务的编号,即任务gI+i是第i个被调度的;

所述基于层次和任务最早完成时间的个体生成方法包括如下步骤:

步骤A1:根据任务层次值从小到大随机排列任务,即层次值小的排在大的前面,具有相同层次值的则随机排列,形成个体的任务调度顺序列表{gI+1,…,g2I};

步骤A2:基于任务最早完成时间生成个体虚拟机分配列表{g1,…,gI}并计算其适应度值;

步骤A3:输出一个个体{g1,…,gI,gI+1,…,g2I}及其适应度值,操作结束;

所述适应度值为工作流执行时间ms=max{f1,…,fI},适应度值越小、个体越优;

步骤4:对当代种群进行N/2次基于层次的任务调度顺序列表交叉操作生成新种群,对新种群中的每个个体采用基于层次的任务调度顺序列表变异操作;

所述基于层次的任务调度顺序列表交叉操作包括如下步骤:

步骤B1:基于排序的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2;

步骤B2:随机选择一个层次l;

步骤B3:交换父体1的任务调度顺序列表和父体2的任务调度顺序列表中l层次的任务调度顺序,并清空虚拟机分配列表,生成两个子体1和子体2,操作结束;

所述基于层次的任务调度顺序列表变异操作包括如下步骤:

步骤C1:找出层中任务数量大于1的层次集SL,如果SL不为空,则转到步骤C2,否则转到步骤C4;

步骤C2:从SL中随机选择一个层次,设为层次l;

步骤C3:从层次l中随机选择两个任务,在任务调度顺序列表中交换这两个任务;

步骤C4:基于层次的任务调度顺序列表变异操作结束;

步骤5:令新种群为当代种群,对当代种群中的每个个体基于任务最早完成时间生成个体的虚拟机分配列表并计算其适应度值;

步骤6:进行精英保存与替换;

所述精英保存与替换过程描述如下:如果当前种群中的最优个体即适应度值最小的个体优于精英个体,那么用最优个体替换精英个体,如果精英个体优于最优个体,那么用精英个体替换当前种群中的最差个体即适应度值最大的个体;

步骤7:判断是否满足第一阶段迭代终止条件,如满足,则第一阶段进化结束转到步骤8,否则转到步骤4;

所述第一阶段终止条件为迭代到指定的代数TG1或连续迭代GG1代精英个体没有改进;

步骤8:对当代种群进行N/2次基于拓扑排序的任务调度顺序列表交叉操作生成新种群,对新种群中的每个个体采用基于拓扑排序的任务调度顺序列表变异操作;

所述基于拓扑排序的任务调度顺序列表交叉操作包括如下步骤:

步骤D1:基于排序的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2,设为:设生成的子体1和子体2为:

步骤D2:从前向后找出chp1的任务调度顺序列表和chp2的任务调度顺序列表的第1个不同基因的位置δ1,从后向前找出chp1的任务调度顺序列表和chp2的任务调度顺序列表的第1个不同基因的位置δ2

步骤D3:随机产生一个δ1到δ2-1的正整数α;

步骤D4:chc1的任务调度顺序列表的前α个基因来自于chp1的任务调度顺序列表的前α个基因,即1≤i≤α,任务调度顺序列表的后I-α个基因来自于chp2的任务调度顺序列表中删除chp1的任务调度顺序列表的前α个基因后的基因列表;

步骤D5:chc2的任务调度顺序列表的前α个基因来自于chp2的任务调度顺序列表的前α个基因,即1≤i≤α,任务调度顺序列表的后I-α个基因来自于chp1的任务调度顺序列表中删除chp2的任务调度顺序列表的前α个基因后的基因列表;

步骤D6:令chc1、chc2的虚拟机分配列表为空,输出chc1、chc2,操作结束;

所述基于拓扑排序的任务调度顺序列表变异操作包括如下步骤:

步骤E1:从任务调度顺序列表{gI+1,…,g2I}中随机选择一个任务gi,i=I+1,…,2I;

步骤E2:如果任务gi存在父任务则向前找到第一个父任务gi′,令位置值pos1=i′+1,否则令pos1=I+1;如果任务gi存在子任务则向后找到第一个子任务gi″,令位置值pos2=i″-1,否则令pos2=2I;

步骤E3:在[pos1,pos2]之间重新随机选择一个位置插入gi

步骤E4:基于拓扑排序的任务调度顺序列表变异操作结束;

步骤9:令新种群为当代种群,对当代种群中的每个个体基于任务最早完成时间生成个体的虚拟机分配列表并计算其适应度值;

步骤10:进行精英保存与替换;

步骤11:判断是否满足第二阶段迭代终止条件,如满足,则转到步骤12,否则转到步骤8;

所述第二阶段终止条件为进入第二阶段后迭代到指定的代数TG2或连续迭代GG2代精英个体没有改进;

步骤12:对当代种群进行N/2次虚拟机分配列表和任务调度顺序列表交叉操作生成新种群,对新种群中的每个个体进行虚拟机分配列表和任务调度顺序列表变异操作;

所述虚拟机分配列表和任务调度顺序列表交叉操作包括如下步骤:

步骤F1:基于排序的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2,设为:设生成的子体1和子体2为:

步骤F2:如果与不同,那么转到步骤F3,否则1≤i≤I,转到步骤F8;

步骤F3:从前向后找出与的第1个不同基因的位置δ1,从后向前找出与的第1个不同基因的位置δ2;如果δ1≠δ2,则转到步骤F4,否则1≤i≤I,转到步骤F7;

步骤F4:随机产生一个δ1到δ2-1的正整数α;

步骤F5:chc1的虚拟机分配列表部分的前α个基因来自于chp1的虚拟机分配列表部分的前α个基因,即1≤i≤α;虚拟机分配列表部分的后I-α个基因来自于chp2的虚拟机分配列表部分的后I-α个基因,即α<i≤I;

步骤F6:chc2的虚拟机分配列表部分的前α个基因来自于chp2的虚拟机分配列表部分的前α个基因,即1≤i≤α;虚拟机分配列表部分的后I-α个基因来自于chp1的虚拟机分配列表部分的后I-α个基因,即α<i≤I;

步骤F7:如果和不同,则转到步骤F8;否则I+1≤i≤2I,转到步骤F12;

步骤F8:从前向后找出和的第1个不同基因的位置δ3,从后开始向前找出和的第1个不同基因的位置δ4

步骤F9:随机产生一个δ3到δ4-1的正整数β;

步骤F10:chc1的调度顺序列表部分的前β个基因来自于chp1的调度顺序列表的前β个基因,即1≤i≤β;后I-β个基因来自于chp2的调度顺序列表中删除基因值等于的基因后的基因列表;

步骤F11:chc2的调度顺序列表部分的前β个基因来自于chp2的调度顺序列表的前β个基因,即1≤i≤β;后I-β个基因来自于chp1的调度顺序列表中删除基因值等于的基因后的基因列表;

步骤F12:输出操作结束;

所述虚拟机分配列表和任务调度顺序列表变异操作包括如下步骤:

步骤G1:从虚拟机分配列表{g1,…,gI}中随机选择一位,设为gi,从VMi中重新随机选择一个虚拟机;

步骤G2:从任务调度顺序列表{gI+1,…,g2I}中随机选择一位,设为gi

步骤G3:如果任务gi存在父任务则向前找到第一个父任务gi′,令位置值pos1=i′+1,否则令pos1=I+1;如果任务gi存在子任务则向后找到第一个子任务gi″,令位置值pos2=i″-1,否则令pos2=2I;

步骤G4:在[pos1,pos2]之间重新随机选择一个位置插入gi

步骤G5:虚拟机分配列表和任务调度顺序列表变异操作结束;

步骤13:令新种群为当代种群,对当代种群中的每个个体采用FBID和LDI方法进行改进并计算其适应度值;

所述FBID方法包括如下步骤:

步骤H1:计算各任务的执行时间其中

ωi,j:是vmj处理ti的时间,

是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,

是处理的虚拟机,

τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,

步骤H2:令变量k=1,采用基于插入模式的串行个体解码方法对个体ch进行解码,获得所有任务的完成时间f1,…,fI及工作流的执行时间ms=max{f1,…,fI};

步骤H3:颠倒任务的父子关系,即交换PRi与SCi中的元素,i=1,…,I,把个体ch中的任务调度顺序列表根据任务完成时间从大到小重新排列,即把个体中的基因gI+i设置为倒数第i个完成的任务,i=1,…,I,形成个体

步骤H4:令k=k+1,对个体采用基于插入模式的串行个体解码方法进行解码获得所有任务的完成时间及工作流的执行时间

步骤H5:若那么转到步骤H3,否则转到步骤H6;

步骤H6:如果k为偶数那么输出个体ch,否则输出个体工作流的执行时间为ms,操作结束;

所述LDI方法包括如下步骤:

步骤I1:计算各虚拟机负载

步骤I2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤I3,否则转到步骤I4;

步骤I3:令任务集转到步骤I5;

步骤I4:令任务集STj′=Tj′,转到步骤I5;

步骤I5:如果STj′不为空,则从STj′中按顺序取出一个其所在虚拟机的负载是最高的任务i′,转到步骤I6;否则转到步骤I7;

步骤I6:令gi′=j′,形成新的个体采用FBID方法对进行解码与改进,如果有改进则用此改进的个体替换原个体,转到步骤I7;否则转到步骤I5;

步骤I7:LDI操作结束;

步骤14:进行精英保存与替换;

步骤15:判断是否满足第三阶段迭代终止条件,如满足,则转到步骤16,否则转到步骤12;

所述第三阶段终止条件为进入第三阶段后迭代到指定的代数TG3或连续迭代GG3代精英个体没有改进;

步骤16:输出精英个体,其对应的调度方案即为优化方案。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911259896.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top