基于振荡式惯性权重的离散粒子群调度算法的制作方法

文档序号:16382147发布日期:2018-12-22 09:35阅读:408来源:国知局
基于振荡式惯性权重的离散粒子群调度算法的制作方法

本发明涉及云计算资源调度领域,具体涉及一种基于振荡式惯性权重的离散粒子群调度算法。

背景技术

随着互联网技术的发展和移动互联网用户的爆发式增长,互联网进一步融合到用户生活的各个方面,这种新情况也给网络提供商带来了新的挑战,如何在网络负载日益加重的情况下满足用户对网络速度以及安全性等方面的要求成为网络提供商亟待解决的问题,并且网络带宽的不断增长使得通过网络访问非本地的计算服务变成可能,云计算就是在这种背景下诞生的。它是以传统计算机技术与网络技术为基础的新型计算模式,融合了虚拟化技术、负载均衡、分布式计算、并行计算以及网络存储等技术。云计算环境下,用户与任务的执行过程分离,用户不需要关心任务在何处以何种方式运行,云计算的目标就是通过网络把抽象的计算、存储、带宽、平台等资源按需提供给用户。

云计算通过mapreduce模型,如图1所示,先将用户的任务请求拆分为众多子任务,然后中心代理将子任务映射到资源节点(虚拟机)进行计算:中心代理根据子任务的大小、带宽、处理能力等要求选择合适的资源节点去执行子任务,最后再将任务合并返回给用户,通过这种方式可以高效的响应用户请求。但是将众多子任务映射到资源节点是np-hard问题,目前云计算平台采用的调度算法存在一定问题:如单队列调度,简单但资源利用率低;公平调度,支持作业分类调度,但是节点的负载均衡未考虑;容量调度,支持多作业并行执行,但队列设置和队列选择无法自动进行。

鉴于此,确有必要发明一种基于粒子群算法的云计算资源调度方法,以解决上述问题。



技术实现要素:

本发明的目的在于提供一种任务调度时间短,云平台服务质量高的基于振荡式惯性权重的离散粒子群调度算法。

为了实现上述目的,本发明采用如下技术方案:一种基于振荡式惯性权重的离散粒子群调度算法,包括如下步骤:

s1,对粒子群中每个粒子的参数进行初始化;

s2,计算每个粒子的完工时间,并找出全局最优解gbest和个体最优解pbest;

s3,根据公式(1)-(3)对每个粒子的速度和位置进行更新:

其中,c1和c2是加速常数,rand1()和rand2()是在0到1之间的随机数,是表示粒子在第t次迭代后的速度和位置,表示粒子第t+1次迭代后的速度和位置,ω是惯性权重,是全局最优解,是个体最优解;

s4,判断是否达到迭代次数,若达到迭代次数,则终止并输出结果;若未达到迭代次数,则循环进入步骤s2。

作为本发明进一步改进的技术方案,步骤s1具体包括:

s10,对粒子群中每个粒子的初始位置进行初始化;

s11,对粒子群中每个粒子的初始速度进行初始化。

作为本发明进一步改进的技术方案,步骤s10中,每个粒子的初始位置服从均匀分布。

作为本发明进一步改进的技术方案,步骤s11中,每个粒子的初始速度服从均匀分布。

作为本发明进一步改进的技术方案,步骤s2中,在计算每个粒子对应的完工时间时,需要建立任务与虚拟机的映射效率,具体步骤如下:

步骤1,对粒子进行编码,定义粒子的维度为n,即有n个任务,分配m台虚拟机执行任务,其中m≤n;定义粒子的第i个维度是j,即任务i分配到j号虚拟机执行;

步骤2,用户发出任务请求,各个虚拟机得出完成每个任务所需时间的执行时间矩阵:

步骤3,计算得出每个任务的最大完工时间makespan。

作为本发明进一步改进的技术方案,最大完工时间makespan由以下公式计算获得:

其中,sj表示j号虚拟机上执行的任务集合。

作为本发明进一步改进的技术方案,粒子第t+1次迭代速度被限定在虚拟机数量的10%-20%之间。

作为本发明进一步改进的技术方案,速度的矢量和位置的矢量的每个维度都遵循公式(1)。

本发明的有益效果是:本发明采用振荡式惯性权重的离散粒子群调度算法,提高了迭代前期的全局开发能力和迭代后期的局部探索能力,通过不断的迭代最终建立任务到虚拟机的映射坐标。

附图说明

图1为现有技术中云计算资源调度模型。

图2为本发明基于振荡式惯性权重的离散粒子群调度算法的流程图。

图3为本发明基于振荡式惯性权重的离散粒子群调度算法的振荡式惯性权重的示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施方式对本发明进行详细描述。

本发明提供一种基于振荡式惯性权重的离散粒子群调度算法,在本发明中,首先要建立任务与虚拟机的映射效率。

具体步骤如下:

步骤1,对粒子进行编码,定义粒子的维度为n,即有n个任务,分配m台虚拟机(即资源节点)执行任务,其中m≤n;定义粒子的第i个维度是j,即任务i分配到j号虚拟机执行;

步骤2,用户发出任务请求,各个虚拟机得出完成每个任务所需时间的执行时间矩阵:

每个任务的完工时间取决于执行时间最长的虚拟机,可得最大完工时间makespan的公式,最大完工时间是评估算法的性能指标,最大完工时间越短,用户满意度越高。

步骤3,计算得出每个任务的最大完工时间makespan:

其中,sj表示j号虚拟机上执行的任务集合。

请参图2所示,基于上述的数据结构,下面提供一种基于振荡式惯性权重的离散粒子群调度算法,包括如下步骤:

s1,对粒子群中每个粒子的参数进行初始化;

s2,根据公式(b)计算每个粒子的最大完工时间,并找出全局最优解gbest和个体最优解pbest;

s3,根据公式(1)-(3)对每个粒子的速度和位置进行更新:

其中,c1和c2是加速常数,rand1()和rand2()是在0到1之间的随机数,是表示粒子在第t次迭代后的速度和位置,表示粒子第t+1次迭代后的速度和位置,ω是惯性权重,是全局最优解,是个体最优解;

s4,判断是否达到迭代次数,若达到迭代次数,则终止并输出结果;若未达到迭代次数,则循环进入步骤s2,直到达到迭代次数为止。

具体来讲,步骤s1包括如下步骤:

s10,对粒子群中每个粒子的初始位置进行初始化,每个粒子的初始位置服从均匀分布,xi~u(0,vmnum),其中,vmnum是虚拟机的个数;

s11,对粒子群中每个粒子的初始速度进行初始化,每个粒子的初始速度服从均匀分布,即vi~u(0,vmnum)。

在上述公式中,c1和c2是加速常数,分别表示粒子对自身的历史最优解和种群全局最优解的依赖程度。rand1()和rand2()是在0到1之间的随机数,增加粒子寻优过程的随机性,防止粒子过早向同一方向移动。是表示粒子在第t次迭代后的速度和位置,速度的矢量和位置的矢量的每个维度都遵循公式(1),表示粒子第t+1次迭代后的速度和位置,粒子的速度被限定在虚拟机数量的10%-20%之间,防止跑出问题域。ω是惯性权重,可以决定粒子对当前速度参考的比重,如果ω较大,则子具有强大的探索能力,可以跨越更远的距离,便于寻找全局最优解;如果ω较小,意味着粒子拥有更好的局部寻优能力。

如图3所示,为本发明中振荡式惯性权重的示意图,公式(2)是本发明提出的振荡式惯性权重,在粒子探索初期具有较大的值,利于粒子全局探索,然后周期振荡减小,便于粒子局部探索和全局调整位置。

本发明采用的一种基于振荡式惯性权重的离散粒子群调度算法是一种启发式仿生学算法,利用鸟类群体个体对信息的共享机制,使整个群体的运动在问题的解空间中产生从无序到有序的演化过程,从而获得最优解。在粒子群算法中,每个粒子都是依靠自身的飞行经验以及种群的飞行经验来调整自己的位置和速度。在搜索过程中,单个个体找到个体的最优解,也称为局部极值,而对于整个种群,所有个体的局部极值中的最优位置,就是群体最优解,称作全局极值。在整个搜索过程中,粒子通过迭代不断更新自己的位置和速度,通过定义的适应度函数来调整评估自身位置的优劣,最终找到全局最优解。

综上所述,本发明提供一种基于振荡式惯性权重的离散粒子群调度算法,通过绝对值向上取余映射离散化粒子群算法,使每个粒子的维度与任务的数量相对应,粒子的坐标与任务分配到虚拟机的映射坐标相对应;采用振荡式惯性权重的离散粒子群调度算法,提高了迭代前期的全局开发能力和迭代后期的局部探索能力,通过不断的迭代最终建立任务到虚拟机的映射坐标。从而,本发明大幅度缩短了云计算中的任务调度的时间,提高了对用户请求的反馈速度,提升了云平台的服务质量。

以上实施例仅用于说明本发明而并非限制本发明所描述的技术方案,对本说明书的理解应该以所属技术领域的技术人员为基础,尽管本说明书参照上述的实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,所属技术领域的技术人员仍然可以对本发明进行修改或者等同替换,而一切不脱离本发明的精神和范围的技术方案及其改进,均应涵盖在本发明的权利要求范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1