[发明专利]一种云环境下基于遗传算法的多工作流调度方法有效
申请号: | 201711248932.8 | 申请日: | 2017-12-01 |
公开(公告)号: | CN107967171B | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 邓伏虎;赖淼;熊虎;耿技 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/455;G06N3/00 |
代理公司: | 成都正华专利代理事务所(普通合伙) 51229 | 代理人: | 何凡 |
地址: | 611730 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 环境 基于 遗传 算法 工作流 调度 方法 | ||
1.一种云环境下基于遗传算法的多工作流调度方法,其特征在于,包括以下步骤:
S1、判断是否有新的工作流到达,若有则保留先前工作流调度状态并进入步骤S2;否则继续处理先前的工作流;
S2、根据虚拟机上的空闲时间槽为新工作流提供资源;初始化遗传算法的交叉概率、变异概率、最大迭代次数和种群大小;初始化新工作流的种群并作为父代种群;
S3、获取父代种群的完成时间和父代种群所有子任务的通信开销,计算父代种群中每个个体的适应度;
S4、根据轮盘赌技术从父代种群中选出两个父代个体;
S5、根据交叉概率对选出的两个父代个体进行交叉操作,得到两个子代个体;
S6、根据变异概率对得到的两个子代个体实施单点变异,得到两个新的子代个体并计算其适应度;
S7、比较得到的新子代个体的适应度和与其对应的父代个体的适应度,选择适应度较小的两个个体加入子代种群;
S8、判断子代种群个体大小是否等于遗传算法的种群大小,若相等则进入步骤S9,否则返回步骤S4;
S9、合并子代种群和父代种群,并从合并种群中选出与遗传算法的种群大小数量相等的个体组成新的父代种群;
S10、判断遗传算法是否满足最大迭代次数,若满足,则停止算法并输出步骤S9中新父代种群里适应度最小的个体作为最优调度;否则将步骤S3中的父代种群替换为步骤S9中的新父代种群进行迭代;
所述步骤S2中初始化遗传算法的交叉概率、变异概率、最大迭代次数和种群大小的方法为:将遗传算法的交叉概率设置为0.8,将变异概率设置为0.2,将最大迭代次数设置为500,将种群大小设置为popsize;
所述步骤S2中初始化新工作流的种群的方法为:
S2-1、采用有向无环图
G=(V,E)
表示每个工作流,其中节点的集合V={V0,V1,...,Vn}对应工作流中的子任务集,子任务个数为n;有向边的集合E={edge(Vi,Vj)|Vi,Vj∈V}表示子任务之间的优先级关系;
S2-2、采用二维数组(TaskOrder,Schedule)表示种群中的个体,其中数组TaskOrder和Schedule的数组长度都为n;TaskOrder表示子任务调度顺序,TaskOrder数组中子任务Vi出现在子任务Vj之前,表示子任务Vi需在子任务Vj之前被分配虚拟机;Schedule[i]=k表示子任务Vi被分配给序号为k的虚拟机所执行;
所述TaskOrder数组的初始化方法为:
根据b-level和t-level方法递归计算工作流中每个子任务的向上权值Ranku和向下权值Rankd,并分别根据子任务的Ranku值和Rankd值对子任务进行降序和升序排序,根据排序结果初始化TaskOrder数组;
其中子任务Vi的向上权值Ranku(Vi)定义为
式中,表示子任务Vi在所有虚拟机上的平均执行开销;Vj表示子任务Vi的直接后继节点;Succ(Vi)表示子任务Vi的直接后继节点集合;表示子任务Vi和子任务Vj之间的平均通信开销,q表示系统中虚拟机数目,表示通信开销,data(Vi,Vj)表示子任务Vi传递给子任务Vj的数据量,bw(V Mk)表示编号为k的虚拟机带宽;没有直接后继节点的节点定义为Vexit;
子任务Vi的向下权值Rankd(Vi)被定义为:
Rankd(Ventry)=0
式中,Pred(Vi)表示子任务Vi的直接前驱节点集合;没有直接前驱节点的节点定义为Ventry;
若工作流中存在不止一个Ventry和Vexit节点,则为其流添加虚拟节点,并将虚拟节点权值和与虚拟节点相连接的边的权值均设置为0;
所述Schedule数组的初始化方法为:采用随机生成虚拟机编号初始化;
所述步骤S3中获取父代种群的完成时间和父代种群所有子任务的通信开销的方法为:
根据公式
makespan=max{AFT(Vexit)}
得到工作流的完成时间;并根据公式
得到多工作流调度系统中所有子任务通信开销,其中m表示工作流个数;AFT(Vexit)表示节点Vexit的最早完成时间;
所述步骤S3中适应度的计算公式为:
f(x)=Minimize(W1*makespan+W2*Comcost)
其中W1和W2分别表示目标函数makespan和Comcost的权重系数;
所述步骤S5的具体方法为:
在(0,1)范围内随机生成一个数值Rc,若Rc小于交叉概率,则进行交叉操作并得到两个子代个体;否则将父代个体进行克隆得到两个子代个体;
所述交叉操作的方法包括:
S5-1、获取个体X1和个体X2的TaskOrder数组,分别标记为TaskOrder1和TaskOrder2,从0至(n-1)中随机生成一个整数position1;
S5-2、创建两个数组长度为n的临时数组temp1和temp2,依次将TaskOrder1中索引号为0到position1的索引值赋给temp2中索引号为0到position1的索引值;依次将TaskOrder2中索引号为0到position1的索引值赋给temp1中索引号为0到position1的索引值;
S5-3、从头到尾浏览TaskOrder1中的值,若值不在temp1中,则添加至temp1尾部;从头到尾浏览TaskOrder2中的值,若值不在temp2中,则添加至temp2尾部;
S5-4、用temp1数值中的值依次覆盖TaskOrder1数组中的值;用temp2数值中的值依次覆盖TaskOrder2数组中的值,得到个体X1和个体X2的Schedule数组,将这两个数组的值依次进行置换实现交叉操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711248932.8/1.html,转载请声明来源钻瓜专利网。