[发明专利]利用差分进化算法优化Iaas两目标任务调度的方法有效
申请号: | 201811194822.2 | 申请日: | 2018-10-15 |
公开(公告)号: | CN109522104B | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 张军;龚月姣;詹志辉;林盈;周淑姿 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06N3/12 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 李斌 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 利用 进化 算法 优化 iaas 目标 任务 调度 方法 | ||
1.一种利用差分进化算法优化Iaas两目标任务调度的方法,其特征在于,该方法包括以下步骤:
S1、设定参数,输入提交到云服务器上的任务信息和计算资源的属性,设定的参数包括种群的大小N、集合G的大小gmax、每个集合Si的大小smax、交叉常数CR、最大迭代次数,其中,集合G用于保存两个目标整体优化的解,集合Si用于保存第i个子任务的解,任务信息包括若干个相互独立的任务、用于组成每个独立任务的若干个子任务、每个子任务的执行顺序以及每个子任务的数据量,计算资源的属性包括资源的处理能力、资源的计算服务价格以及连接到资源的数据传输速度;
S2、对模型进行优化,其中,优化目标是找到一组任务资源调度方式x使得云服务的完工时间max{Time1,Time2,…,Timej,…,TimeK}以及云服务的成本两个目标最小化,其中Timej表示第j个资源执行完分配的所有子任务所需的时间,j=1,2,…,K,i=1,2,…,D,D表示子任务的总数,K表示计算资源的总数,当第i个子任务被分配给了第j个资源则αij=1,否则αij=0,是资源实际执行完任务的用时,是任务的数据传输到计算节点所需的时间,Cj是使用第j个资源的单位时间费用;其中,所述的步骤S2中对模型进行优化的过程如下:
S201、随机产生N个合法解作为进化算法中的第一代种群,种群中每个个体的编码方式为解向量的每一个维度用元组表示某个子任务分配给了某个资源,一个合法的解必须将所有的子任务分配给可用的计算资源,并允许有资源不用执行任务;
S202、集合G保存针对目标函数云服务的完工时间和云服务的成本的帕累托最优的解,集合Si保存针对第i个子任务优化的解,初始时为每个集合Si随机分配一个解;
S203、集合G中的成员通过自繁殖产生后代;所述的步骤S203过程如下:
针对集合G中的成员xi,从集合G中用基于拥挤距离的轮盘赌方法选择三个成员和按照变异公式产生成员xi的变异个体vi,将xi和vi用交叉操作得到xi的后代ui,对集合G中的每个成员都生成一个后代,其中,Θ为算子;
S204、集合Si的后代通过交叉繁殖产生;所述的步骤S204过程如下:
首先在集合Si中按照基于单个适应值的轮盘赌方法选择一个成员然后在集合G中按照基于拥挤距离的轮盘赌方法选择三个成员xi、和按照变异公式产生变异个体vi,将成员xi和变异个体vi用交叉操作产生后代ui,按照同样的方法,为每个集合Si生成一个后代;
S205、评价后代的适应值;
S206、整体优化下的集合G和子任务优化下的集合Si分别采用不同的更新策略进行更新;
S207、如果当前迭代次数超出算法设定的最大迭代次数则结束优化,否则返回步骤203继续执行;
其中,所述的变异公式中Θ算子的操作过程如下:
①将任务集中的所有任务序号随机分到两个集合I1和I2中;
②初始化当前处理的维度d为0;
③首先检查解第d维元组上对应的子任务索引记为t1在集合I1中是否存在,若存在则将变异向量v中第d维元组所对应的子任务索引设为t1,并且更新d=d+1;
④继续检查解第d维元组上对应的子任务索引记为t2在集合I2中是否存在,若存在则将变异向量v中第d维元组所对应的子任务索引设为t2,并且更新d=d+1;
⑤若d达到D继续步骤⑥,否则返回步骤③;
⑥将解中的所有维度元组对应的资源索引按顺序复制到变异向量v相对应的位置上;
其中,所述的步骤S205过程如下:
对于子任务优化,要分别将第1目标函数云服务的完工时间和第2目标函数云服务的成本按照如下归一化:
其中是进化到某一代时,第i′目标函数的最大值,是目前在所有集合Si中最小的目标函数值,i′=1或2;
问题的分解采用加权和的方法,如以下公式所示:
其中,λ1的值从集合中分别选取,λ2=1-λ1,集合Si中成员适应值用成员对应的子任务函数来评估;
其中,所述的步骤S206过程如下:
对于保存整体优化最优解的集合G,所有的后代都参与更新集合G,既包括集合G自繁殖产生的后代,也包括每个集合Si交叉繁殖产生的后代,从这些后代和集合G中的成员中筛选出帕累托最优的解,来更新集合G,如果帕累托最优解的数目超过集合G的限定大小gmax,就将这些解按照拥挤距离从大到小排列,保留gmax个拥挤距离最大的解;
对于子任务优化,集合Si参与交叉繁殖产生的后代只用来更新集合Si,如果集合Si中成员数目未超过smax,则直接将集合Si参与交叉繁殖产生的后代保存到集合Si中,否则,比较参与交叉繁殖产生的与集合Si中成员的单目标适应值,只有参与交叉繁殖产生的后代的适应值优于集合Si中的所有成员时,才将参与交叉繁殖产生的后代放进集合Si中,并随机删除一个较差的解,从而保持集合Si成员数目不超过smax。
2.根据权利要求1所述的利用差分进化算法优化Iaas两目标任务调度的方法,其特征在于,所述的交叉操作的过程如下:
①初始化当前处理的维度d为0;
②随机生成一个在[0,1]内均匀分布的随机数r,若r≤CR则将交叉向量u第d维元组对应的资源索引设置为变异向量v第d维元组对应的资源索引,否则设置为父本向量x第d维元组对应的资源索引;
③更新当前处理的维度d=d+1;
④若d达到D,则交叉操作结束,否则返回步骤②。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811194822.2/1.html,转载请声明来源钻瓜专利网。