[发明专利]一种求解云任务调度的进化计算方法有效
| 申请号: | 201910566106.0 | 申请日: | 2019-06-27 |
| 公开(公告)号: | CN110321208B | 公开(公告)日: | 2022-10-14 |
| 发明(设计)人: | 张同亮;史彦军;张克帅;屈福政;沈卫明 | 申请(专利权)人: | 大连理工大学 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/455;G06F9/50 |
| 代理公司: | 大连理工大学专利中心 21200 | 代理人: | 戴风友;温福雪 |
| 地址: | 116024 辽*** | 国省代码: | 辽宁;21 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 求解 任务 调度 进化 计算方法 | ||
1.一种求解云任务调度的进化计算方法,其特征在于,步骤如下:
第一步:建立模型
设有一批N个数据任务需要处理,有S个虚拟机可以供使用;虚拟机默认为总的资源以及执行速度是相同的;现将N个数据任务划分成S个任务集,每个任务集对应一个虚拟机;
目标是得到每个虚拟机之间负载均衡以及用户等待时间较短的一种解决方案;
N:任务的个数;
S:任务集的个数;
T:所有任务集所组成的有效解的集合,T={T1,T2...TS);
SVM:所有虚拟机拥有的三种资源集合,SVM={SVM1i,SVM2i,SVM3i},其中SVM1i表示每个被占用的虚拟机所拥有的CPU资源,SVM2i表示每个被占用的虚拟机所拥有的内存资源,SVM3i表示每个被占用的虚拟机所拥有的带宽资源;
Q1i:每个任务集所需要的CPU占用需求,(0<i<=S);
Q2i:每个任务集所需要的内存占用需求,(0<i<=S);
Q3i:每个任务集所需要的带宽资源占用需求,(0<i<=S);
E1:当前分配方案CPU占用需求的均值
E2:当前分配方案内存资源占用需求的均值
E3:当前分配方案带宽资源占用需求的均值
MIi:任务i的指令长度;
MIPSj:虚拟机j的执行速度;
TTimeij:任务i在虚拟机j上的执行时间,TTimeij=MIi/MIPSj;
STj:每个任务集所需要的总的时间,l为该任务集所包含的任务的个数,
STj=TTime1j+TTime2j+TTime3j+...+TTimelj;
TotalTime:当前分配方案执行所需要的时间,u为该分配方案所包含的任务集的个数,TotalTime=max(ST1,ST2,...,STu);
DTime:客户对这一批任务的最大允许执行时长;
α:表示该分配方案下,虚拟机的负载均衡指标;
β:表示该分配方案下,用户等待时长指标;
评价函数:用于评价当前分配方案的优劣;
f=λ1α+λ2β (1)
其中λ1、λ2表示负载平衡和完成时间的权重,且有λ1+λ2=1;
约束:
Q1i/SVM1i<=1 (i=1,2,3,...,S) (2)
Q2i/SVM2i<=1 (i=1,2,3,...,S) (3)
Q3i/SVM3i<=1 (i=1,2,3,...,S) (4)
TotalTime<=DTime (5)
第二步:求解模型
定义1:初始解:随机生成的不考虑约束的解;
定义2:有效解:具备不重复任务的所有任务集的解称作是有效解;
步骤1:问题编码
步骤1.1:随机产生一个包含有从1到N不重复的整数的数组;每一个整数表示一个任务的标号,并令h=0表示该数组中排在第0位的任务标号的位置,令T为一个的空数组,来存储产生的任务集,令i=0,1<=i<=S表示任务集所对应的标号;
步骤1.2:令Q1=0,Q2=0,Q3=0,ST=0,Q1、Q2、Q3、ST分别表示当前任务集CPU、内存、带宽资源占用以及任务集的执行时间,并从第h位所对应的任务开始,在集合Q中检索并记录其对应的CPU资源q1、内存资源q2、带宽资源q3以及任务所需执行时间TTime;Q表示每个任务所对应的CPU占用需求、内存占用需求以及带宽资源占用需求的集合,Q=((q11,q21,q31),(q12,q22,q32),...,(q1N,q2N,q3N));
步骤1.3:计算并得到Q1=Q1+q1,Q2=Q2+q2,Q3=Q3+q3,ST=ST+TTime,h=h+1;
步骤1.4:判断当前Q1、Q2、Q3、ST是否同时满足约束(2)、(3)、(4)、(5),如果满足,则令h=h+1,转到步骤1.5,否则记录当前任务的组成的集合,存入数组T,得到Ti,i=i+1,并令h=h+1,转到步骤1.2;
步骤1.5:判断h的大小,如果h≤N-1,转到步骤1.3,否则转到步骤1.6;
步骤1.6:得到并输出S个任务集所组成的有效解T;
步骤2:遗传算法求解
步骤2.1:种群初始化
种群初始化指的是在遗传算法中,一次性产生P个从1到N的无序整数列;然后将该整数列按照步骤1中的编码方式生成P个有效解{T1,T2,...,Tp};
步骤2.2:交叉过程
随机选择步骤2.1中产生的初始解Ti、Tj(i≠j),随机生成0到1之间的随机数,如果该随机数小于交叉概率Pc,则进行交叉操作;重复交叉操作共P次;得到P个交叉后的子代替换原始种群,得到新的父代{T1,T2,...,Tp};
步骤2.3:变异过程
步骤2.3.1:令h=0;
步骤2.3.2:从P个个体中随机选择一个个体;
步骤2.3.3:随机生成0到1之间的随机数,如果该随机数小于变异概率Pm,则转到步骤2.3.4,否则令h=h+1,转到步骤2.3.;
步骤2.3.4:随机选择该有效解的一个任务集ri,然后随机选择该任务集的一个任务ti(q1i,q2i,q3i);
步骤2.3.5:从该有效解中另选一个任务集rj(i≠j),并比较t1与rj中所有任务三个指标的欧式距离;计算方法如公式(7)所示,其中(q1k,q2k,q3k)表示rj中第k个任务的资源占用情况:
选择o值最小的任务作为另外一个变异点,并将两个变异点所对应的任务相互交换所在的任务集;
步骤2.3.6:判断h的大小,如果h≤P-1,转到步骤2.3.2,否则转到步骤2.3.7;
步骤2.3.7:输出变异后的P个个体;
步骤2.4:选择过程
步骤2.4.1:在P个变异后的个体中随机选择两个个体,分别计算两个个体的适应度值,选择适应度较大的个体进入下一代,并将这两个个体重新放回种群中;
步骤2.4.2:重复步骤2.4.1共P次,即从P个个体中有放回的比较选择出P个新个体进行下一次迭代;
步骤2.5:重复2.2-2.4共k次,k表示最大迭代代数,记录下k次迭代中评价函数(1)f最大的个体作为最后输出的调度方案。
2.如权利要求1所述的求解云任务调度的进化计算方法,其特征在于,所述的步骤2.2中,交叉操作由删除和添加两个过程组成;
步骤2.2.1:删除过程
步骤2.2.1.1:在当前种群P中随机选择出的两个父代,Ti和Tj(i≠j);
步骤2.2.1.2:从Ti和Tj中各随机选出一个任务集合r1,r2,然后将Ti选择的任务集合r1所包含的任务从Tj中删除;同理,将Tj选择的任务集合r2所包含的任务从Ti中删除;
步骤2.2.2:添加过程
步骤2.2.2.1:首先从r2中选择插入父代Ti中的任务,令h=0;
步骤2.2.2.2:在Ti当前的任务集中添加任务r2[h];
步骤2.2.2.3:判断Ti当前的任务集是否同时满足三个指标的约束,若满足,转到步骤2.2.2.4,否则在Ti中顺序转入下一个任务集,并转到步骤2.2.2.2;
步骤2.2.2.4:由公式(6)计算并存储在添加了该任务以后的每个任务集所对应的方差d;
其中
步骤2.2.2.5:选择d值最小的任务集作为添加对象,并令h=h+1;
步骤2.2.2.6:判断h的大小,如果h≤|r2|-1,则转到步骤2.2.2.2,否则转到2.2.2.7;
步骤2.2.2.7:首先从r1中选择插入父代Tj中的任务,令h=0;
步骤2.2.2.8:在Tj当前的任务集中添加任务r1[h];
步骤2.2.2.9:判断Tj当前的任务集是否同时满足三个指标的约束,若满足,转到步骤2.2.2.10,否则在Tj中顺序转入下一个任务集,并转到步骤2.2.2.8;
步骤2.2.2.10:由公式(6)计算并存储在添加了该任务以后的每个任务集所对应的方差d;
步骤2.2.2.11:选择d值最小的任务集作为添加对象,并令h=h+1;
步骤2.2.2.12:判断h的大小,如果h≤|r2|-1,则转到步骤2.2.2.8,否则转到2.2.2.13;
步骤2.2.2.13:得到添加过程后的两个子代,并将Ti、Tj放回原始种群中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910566106.0/1.html,转载请声明来源钻瓜专利网。





